summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/@npmcli/promise-spawn/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/@npmcli/promise-spawn/README.md')
-rw-r--r--deps/npm/node_modules/@npmcli/promise-spawn/README.md61
1 files changed, 61 insertions, 0 deletions
diff --git a/deps/npm/node_modules/@npmcli/promise-spawn/README.md b/deps/npm/node_modules/@npmcli/promise-spawn/README.md
new file mode 100644
index 0000000000..3b604f2a73
--- /dev/null
+++ b/deps/npm/node_modules/@npmcli/promise-spawn/README.md
@@ -0,0 +1,61 @@
+# @npmcli/promise-spawn
+
+Spawn processes the way the npm cli likes to do. Give it some options,
+it'll give you a Promise that resolves or rejects based on the results of
+the execution.
+
+Note: When the current user is root, this will use
+[`infer-owner`](http://npm.im/infer-owner) to find the owner of the current
+working directory, and run with that effective uid/gid. Otherwise, it runs
+as the current user always. (This helps prevent doing git checkouts and
+such, and leaving root-owned files lying around in user-owned locations.)
+
+## USAGE
+
+```js
+const promiseSpawn = require('@npmcli/promise-spawn')
+
+promiseSpawn('ls', [ '-laF', 'some/dir/*.js' ], {
+ cwd: '/tmp/some/path', // defaults to process.cwd()
+ stdioString: false, // stdout/stderr as strings rather than buffers
+ stdio: 'pipe', // any node spawn stdio arg is valid here
+ // any other arguments to node child_process.spawn can go here as well,
+ // but uid/gid will be ignored and set by infer-owner if relevant.
+}, {
+ extra: 'things',
+ to: 'decorate',
+ the: 'result',
+}).then(result => {
+ // {code === 0, signal === null, stdout, stderr, and all the extras}
+ console.log('ok!', result)
+}).catch(er => {
+ // er has all the same properties as the result, set appropriately
+ console.error('failed!', er)
+})
+```
+
+## API
+
+### `promiseSpawn(cmd, args, opts, extra)` -> `Promise`
+
+Run the command, return a Promise that resolves/rejects based on the
+process result.
+
+Result or error will be decorated with the properties in the `extra`
+object. You can use this to attach some helpful info about _why_ the
+command is being run, if it makes sense for your use case.
+
+Returned promise is decorated with the `stdin` stream if the process is set
+to pipe from `stdin`. Writing to this stream writes to the `stdin` of the
+spawned process.
+
+#### Options
+
+- `stdioString` Boolean, default `false`. Return stdio/stderr output as
+ strings rather than buffers.
+- `cwd` String, default `process.cwd()`. Current working directory for
+ running the script. Also the argument to `infer-owner` to determine
+ effective uid/gid when run as root on Unix systems.
+- Any other options for `child_process.spawn` can be passed as well, but
+ note that `uid` and `gid` will be overridden by the owner of the cwd when
+ run as root on Unix systems, or `null` otherwise.