-
-
Notifications
You must be signed in to change notification settings - Fork 12
Closed
Description
Background issue at sindresorhus/execa#1147
nano-spawn's design goal is to have a small package size. As such, it is intentionally missing some features. Execa provides with those missing features, if a user needs them. Alternatively, users have access to the underlying subprocess, so they can achieve most of what they want.
This issue lists those missing features:
- Synchronous execution
- Binary input/output
- Multiple input/output
- File input/output (see File input/output #19)
- Node.js or web streams (as opposed to iterables). However, users will be able to pass those to the native
stdin/stdout/stderroption, e.g.{stdout: createWriteStream('./output.txt')}. - Graceful termination
- Custom logging
- IPC
- REPL-like input string
- Additional file descriptors can be set through the underlying native option
stdio. However, they cannot be iterated nor retrieved. - Setting a max size for the output.
- Preventing the subprocess to throw. Due to this there is also no need for a
result.failed/error.failedboolean. - Terminate the subprocess when the current process exits.
- Forceful termination after a delay
- Script interface
- Template string syntax
- Keeping the final newline
- Splitting the output in lines (the final output, not when iterating)
- Global/shared options
- Provide a stack trace when terminating the subprocess
- Shebangs on Windows (see Windows support #12)
- Custom Node.js binary (e.g. without ICU)
- Transforms
- Current directory in the result
- Booleans on the error object indicating the subprocess failure reason: timeout, cancelation, signal termination, etc.
- Verbose mode
- Advanced piping:
- Piping from
stderr, bothstderr+stdout, or other file descriptors - Piping to other file descriptors than
stdin - Piping multiple subprocesses to one
- Cancelling piping
- Piping from
@sindresorhus Please let me know if this list is incorrect.
Metadata
Metadata
Assignees
Labels
No labels