Allow template strings with all methods #933
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #891.
Template strings with all methods
The template string syntax can now be used with all methods.
Non-template strings with
$
Also,
$
can now use the non-template string syntax.Default options
Therefore, the only difference between
execa
,$
andexecaNode
are now their default options:execa
: normal default options, general use case.$
:{stdin: 'inherit', preferLocal: true}
default options, intended for scripts.execaNode
:{node: true}
default options, intended to run Node files.execaCommand()
execaCommand()
is slightly different from the other methods, and is only intended for cases like a REPL. In other cases, the other methods are better.Options binding
The template string syntax uses the following convention to set options:
Therefore, it requires adding
$(options)
binding. So this PR also enables options binding with the same syntax as$
. This is quite nice as options binding with Execa was somewhat tricky. For example, to set global options:Which allows doing: