Skip to content

chore(deps): update dependency execa to v9#136

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/execa-9.x
Open

chore(deps): update dependency execa to v9#136
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/execa-9.x

Conversation

@renovate
Copy link
Copy Markdown

@renovate renovate Bot commented May 8, 2024

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
execa 0.11.09.6.1 age confidence

Release Notes

sindresorhus/execa (execa)

v9.6.1

Compare Source


v9.6.0

Compare Source


v9.5.3

Compare Source


v9.5.2

Compare Source

Bug fixes

v9.5.1

Compare Source

Bug fixes

v9.5.0

Compare Source

Features
await execa({stdout: {file: 'output.txt', append: true}})`npm run build`;

v9.4.1

Compare Source

Bug fixes

v9.4.0

Compare Source

Features

  • We've created a separate package called nano-spawn. It is similar to Execa but with fewer features, for a much smaller package size. More info.

Bug fixes

Documentation

v9.3.1

Compare Source

Thanks @​holic and @​jimhigson for your contributions!

Bugs

Bugs (types)

  • Fix type of the env option. It was currently failing for Remix or Next.js users. (by @​holic) (#​1141)

Documentation

v9.3.0

Compare Source

Features

v9.2.0

Compare Source

This release includes a new set of methods to exchange messages between the current process and a Node.js subprocess, also known as "IPC". This allows passing and returning almost any message type to/from a Node.js subprocess. Also, debugging IPC is now much easier.

Moreover, a new gracefulCancel option has also been added to terminate a subprocess gracefully.

For a deeper dive-in, please check and share the release post!

Thanks @​iiroj for your contribution, @​SimonSiefke and @​adymorz for reporting the bugs fixed in this release, and @​karlhorky for improving the documentation!

Deprecations
  • Passing 'ipc' to the stdio option has been deprecated. It will be removed in the next major release. Instead, the ipc: true option should be used. (#​1056)
- await execa('npm', ['run', 'build'], {stdio: ['pipe', 'pipe', 'pipe', 'ipc']});
+ await execa('npm', ['run', 'build'], {ipc: true});
- import {execaCommand} from 'execa';
+ import {execa} from 'execa';

- await execaCommand('npm run build');
+ await execa`npm run build`;

const taskName = 'build';
- await execaCommand(`npm run ${taskName}`);
+ await execa`npm run ${taskName}`;

const commandArguments = ['run', 'task with space'];
await execa`npm ${commandArguments}`;

If the file and/or multiple arguments are supplied as a single string, parseCommandString(command) can split that string into an array. More info. (#​1054)

- import {execaCommand} from 'execa';
+ import {execa, parseCommandString} from 'execa';

const commandString = 'npm run task';
- await execaCommand(commandString);
+ const commandArray = parseCommandString(commandString); // ['npm', 'run', 'task']
+ await execa`${commandArray}`;

// Or alternatively:
const [file, ...commandArguments] = commandArray;
await execa(file, commandArguments);
Features
Types
Bug fixes

v9.1.0

Compare Source

Features (types)

v9.0.2

Compare Source

Bug fixes (types)

v9.0.1

Compare Source

Bug fixes (types)

v9.0.0

Compare Source

This major release brings many important features including:

Please check the release post for a high-level overview! For the full list of breaking changes, features and bug fixes, please read below.

Thanks @​younggglcy, @​koshic, @​am0o0 and @​codesmith-emmy for your help!


One of the maintainers @​ehmicky is looking for a remote full-time position. Specialized in Node.js back-ends and CLIs, he led Netlify Build, Plugins and Configuration for 2.5 years. Feel free to contact him on his website or on LinkedIn!


Breaking changes (not types)

const {stdout} = await execa('node', ['file.js'], {encoding: 'buffer'});
console.log(stdout); // This is now an Uint8Array
- await execa('node', ['file.js'], {encoding: null});
+ await execa('node', ['file.js'], {encoding: 'buffer'});

- await execa('node', ['file.js'], {encoding: 'utf-8'});
+ await execa('node', ['file.js'], {encoding: 'utf8'});

- await execa('node', ['file.js'], {encoding: 'UTF8'});
+ await execa('node', ['file.js'], {encoding: 'utf8'});

- await execa('node', ['file.js'], {encoding: 'utf-16le'});
+ await execa('node', ['file.js'], {encoding: 'utf16le'});

- await execa('node', ['file.js'], {encoding: 'ucs2'});
+ await execa('node', ['file.js'], {encoding: 'utf16le'});

- await execa('node', ['file.js'], {encoding: 'ucs-2'});
+ await execa('node', ['file.js'], {encoding: 'utf16le'});

- await execa('node', ['file.js'], {encoding: 'binary'});
+ await execa('node', ['file.js'], {encoding: 'latin1'});
  • Passing a file path to subprocess.pipeStdout(), subprocess.pipeStderr() and subprocess.pipeAll() has been removed. Instead, a {file: './path'} object should be passed to the stdout or stderr option. (#​752)
- await execa('node', ['file.js']).pipeStdout('output.txt');
+ await execa('node', ['file.js'], {stdout: {file: 'output.txt'}});

- await execa('node', ['file.js']).pipeStderr('output.txt');
+ await execa('node', ['file.js'], {stderr: {file: 'output.txt'}});

- await execa('node', ['file.js']).pipeAll('output.txt');
+ await execa('node', ['file.js'], {
+	stdout: {file: 'output.txt'},
+	stderr: {file: 'output.txt'},
+});
- await execa('node', ['file.js']).pipeStdout(stream);
+ await execa('node', ['file.js'], {stdout: ['pipe', stream]});

- await execa('node', ['file.js']).pipeStderr(stream);
+ await execa('node', ['file.js'], {stderr: ['pipe', stream]});

- await execa('node', ['file.js']).pipeAll(stream);
+ await execa('node', ['file.js'], {
+	stdout: ['pipe', stream],
+	stderr: ['pipe', stream],
+});
  • The subprocess.pipeStdout(), subprocess.pipeStderr() and subprocess.pipeAll() methods have been renamed to subprocess.pipe(). The command and its arguments can be passed to subprocess.pipe() directly, without calling execa() a second time. The from piping option can specify 'stdout' (the default value), 'stderr' or 'all'. (#​757)
- await execa('node', ['file.js']).pipeStdout(execa('node', ['other.js']));
+ await execa('node', ['file.js']).pipe('node', ['other.js']);

- await execa('node', ['file.js']).pipeStderr(execa('node', ['other.js']));
+ await execa('node', ['file.js']).pipe('node', ['other.js'], {from: 'stderr'});

- await execa('node', ['file.js']).pipeAll(execa('node', ['other.js']));
+ await execa('node', ['file.js']).pipe('node', ['other.js'], {from: 'all'});
- await execa('node', ['file.js'], {signal: abortController.signal});
+ await execa('node', ['file.js'], {cancelSignal: abortController.signal});
try {
	await execa('node', ['file.js']);
} catch (error) {
- if (error.killed) {
+ if (error.isTerminated) {
		// ...
	}
}
- subprocess.cancel();
+ subprocess.kill();
- const subprocess = execa('node', ['file.js']);
- subprocess.kill('SIGTERM', {forceKillAfterTimeout: 1000});
+ const subprocess = execa('node', ['file.js'], {forceKillAfterDelay: 1000});
+ subprocess.kill('SIGTERM');
  • The verbose option is now a string enum instead of a boolean. false has been renamed to 'none' and true has been renamed to 'short'. (#​884)
- await execa('node', ['file.js'], {verbose: false});
+ await execa('node', ['file.js'], {verbose: 'none'});

- await execa('node', ['file.js'], {verbose: true});
+ await execa('node', ['file.js'], {verbose: 'short'});
- await execa('node', ['file.js'], {execPath: './path/to/node'});
+ await execa('node', ['file.js'], {nodePath: './path/to/node'});
- subprocess.send({example: true, getExample() {}});
+ subprocess.send({example: true});
const subprocess = execa('node', ['file.js']);
- setTimeout(() => {
	subprocess.stdout.pipe(process.stdout);
- }, 0);
- const subprocess = execa('node', ['file.js'], {killSignal: 'sigterm'});
+ const subprocess = execa('node', ['file.js'], {killSignal: 'SIGTERM'});

- subprocess.kill('sigterm');
+ subprocess.kill('SIGTERM');

Features

Execution
Text lines
Piping multiple subprocesses
Input/output
Streams
Verbose mode
Debugging
Errors
Termination
Node.js files
Synchronous execution
Inter-process communication
Input validation

Bug fixes

Breaking changes (types)

import type {Options} from 'execa';

- const options: CommonOptions = {timeout: 1000};
+ const options: Options = {timeout: 1000};
import type {Options} from 'execa';

- const options: NodeOptions = {nodeOptions: ['--no-warnings']};
+ const options: Options = {nodeOptions: ['--no-warnings']};
import type {Options} from 'execa';

- const options: KillOptions = {forceKillAfterTimeout: 1000};
+ const options: Options = {forceKillAfterDelay: 1000};
import type {Options} from 'execa';

- const options: Options<'utf8'> = {encoding: 'utf8'};
+ const options: Options = {encoding: 'utf8'};
import type {ResultPromise, Result} from 'execa';

- const promiseOrSubprocess: ExecaChildProcess = execa('node', ['file.js']);


> ✂ **Note**
> 
> PR body was truncated to here.


</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/bahmutov/git-last).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ1cGRhdGVkSW5WZXIiOiI0My4xNTAuMCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->

@renovate renovate Bot force-pushed the renovate/execa-9.x branch 3 times, most recently from e78fc13 to 81c54f6 Compare May 13, 2024 15:24
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from 81c54f6 to 3206277 Compare June 6, 2024 19:09
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from 3206277 to 287b9cc Compare June 21, 2024 19:01
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from 287b9cc to 56bc219 Compare August 14, 2024 20:38
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from 56bc219 to 970dd0e Compare September 17, 2024 00:08
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from 970dd0e to e8d1726 Compare October 16, 2024 22:35
@renovate renovate Bot force-pushed the renovate/execa-9.x branch 2 times, most recently from 58b65d7 to e1bfb08 Compare October 29, 2024 11:37
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from e1bfb08 to 2e0ecf2 Compare December 8, 2024 01:49
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from 2e0ecf2 to 19461fd Compare May 8, 2025 20:43
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from 19461fd to 52a8881 Compare May 27, 2025 00:55
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from 52a8881 to 419ccaf Compare August 10, 2025 13:44
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from 419ccaf to f72f034 Compare August 19, 2025 18:45
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from f72f034 to 658e1e7 Compare September 25, 2025 16:06
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from 658e1e7 to 15e9319 Compare October 21, 2025 18:03
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from 15e9319 to 4fc6141 Compare November 10, 2025 16:54
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from 4fc6141 to d10129e Compare November 18, 2025 12:32
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from d10129e to 6f8c567 Compare November 29, 2025 22:45
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from 6f8c567 to aeb390e Compare March 5, 2026 18:56
@renovate renovate Bot force-pushed the renovate/execa-9.x branch from aeb390e to 2d33b17 Compare April 1, 2026 20:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants