Back to Explore

tinylibs/tinyexec

GitHub
10 updates · last 90 days1 watchersOpen source

Last release: 1 week ago

tinyexec is a minimal Node.js package for executing commands using a higher level interface over child_process. It lets you spawn a process, await its result (stdout, stderr, exitCode), and optionally pipe between commands, handle timeouts or abort signals, and support async or synchronous execution.

Project status

  • The repository appears actively maintained, with a recent upstream push on 2026-06-03 and multiple recent version updates (1.2.2 to 1.2.4) in late May to early June 2026.
  • The apparent update cadence is fairly steady, with new updates roughly every few days (1.2.2 on 2026-05-23, 1.2.3 on 2026-05-28, 1.2.4 on 2026-05-31).

AI summary generated Today

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • 1.2.4

    1 week ago

    Release 1.2.4 makes a targeted change in tinyexec’s process execution plumbing, described only as reverting the “grandchild fix” temporarily. The code change removes the special handling that previously tried to prevent hangs when a grandchild process inherited piped stdout/stderr file descriptors.

  • 1.2.3

    1 week ago

    This patch release primarily updates development dependencies and fixes a deadlock scenario involving piped streams when a child process exits while a grandchild still holds inherited pipe file descriptors open. The release also adds tests to reproduce and validate the “grandchild holds piped stdout open” behavior.

  • 1.2.2

    2 weeks ago

    Release 1.2.2 primarily fixes shebang detection in the command normalization logic. The change updates the shebang regular expression and adds a targeted test fixture to verify that scripts starting with a shebang are detected and rewritten to run under the specified interpreter.

  • 1.2.1

    2 weeks ago

    Version 1.2.1 adds a new test case for the async iterator behavior of the `exec (async)` API when `throwOnError: true` and the spawned process exits with a non-zero status. The code diff shows changes only in the test suite, with no production code modifications.

  • 1.2.0

    2 weeks ago

    This release introduces a new `nodePath` option/flag (documented in the README) that controls whether Tinyexec prepends local `node_modules/.bin` and the current node executable directory to `PATH`. Internally, it also replaces the previous `cross-spawn` command parsing flow with new normalization logic and adds corresponding unit tests for environment computation and spawn normalization.

    Features
  • 1.1.2

    1 month ago

    tinyexec 1.1.2 primarily updates its TypeScript API to accept readonly string[] for the args parameters. It also changes command handling by removing prior command normalization, which could affect how commands are matched if your code relied on that normalization. The release includes dependency bumps and minor documentation fixes.

    BreakingFeatures
  • 1.1.2-next.0

    1 month ago

    This release updates Tinyexec's TypeScript surface to accept readonly string[] for the args parameters, and adjusts internal typing for cross-spawn parsing. It also removes command/path normalization logic before spawning, along with related tests to ensure cwd-local commands like ./mytool are executed rather than being altered for PATH lookup.

    BreakingFeatures
  • 1.1.1

    2 months ago

    Release 1.1.1 updates the GitHub Actions npm publish workflow to fix publishing reliability. The change adds an extra global npm installation step (installing a specific npm version) before installing the latest npm.

  • 1.1.0

    2 months ago

    Version 1.1.0 adds a new synchronous API (xSync) and extends stdin support to accept string input, alongside existing piping from other processes/results. It also improves runtime behavior, including better PATH handling for spawned Node processes and a fix to stream combining via stream.pipeline for cases like autoDestroy=false.

    BreakingFeatures
  • 1.0.4

    2 months ago

    Release 1.0.4 updates the package.json entrypoints and type export mappings. The release notes state it is a fix to package.json exports, but the diff shows more specific changes to the runtime main file and the TypeScript declaration file paths.