promisify-child-process 4.1.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/index.cjs +92 -123
- package/index.cjs.map +1 -0
- package/index.d.cts +65 -0
- package/index.d.cts.map +1 -0
- package/index.d.ts +63 -66
- package/index.d.ts.map +1 -0
- package/index.js +141 -0
- package/index.js.map +1 -0
- package/package.json +22 -126
- package/src/index.ts +314 -0
- package/index.js.flow +0 -221
- package/index.mjs +0 -6
package/README.md
CHANGED
|
@@ -8,6 +8,12 @@
|
|
|
8
8
|
|
|
9
9
|
seriously like the best async child process library
|
|
10
10
|
|
|
11
|
+
(I'm joking, you may want to use [`execa`](https://github.com/sindresorhus/execa) which has a lot more features. The minor advantages of this package are:)
|
|
12
|
+
|
|
13
|
+
- it's a dual CJS/ESM package
|
|
14
|
+
- it conforms to the `child_process` API
|
|
15
|
+
- and it provides wrappers for all the async `child_process` functions
|
|
16
|
+
|
|
11
17
|
Based upon [`child-process-async`](https://github.com/itsjustcon/node-child-process-async),
|
|
12
18
|
but more thorough, because that package doesn't seem very actively maintained.
|
|
13
19
|
|
package/index.cjs
CHANGED
|
@@ -1,183 +1,152 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
7
|
+
exports.execFile = exports.exec = void 0;
|
|
8
|
+
exports.fork = fork;
|
|
9
|
+
exports.isChildProcessError = isChildProcessError;
|
|
6
10
|
exports.promisifyChildProcess = promisifyChildProcess;
|
|
7
11
|
exports.spawn = spawn;
|
|
8
|
-
|
|
9
|
-
exports.execFile = exports.exec = void 0;
|
|
10
|
-
|
|
11
|
-
const child_process = require('child_process');
|
|
12
|
-
|
|
13
|
-
const bindFinally = promise => (handler // don't assume we're running in an environment with Promise.finally
|
|
14
|
-
) => promise.then(async value => {
|
|
15
|
-
await handler();
|
|
16
|
-
return value;
|
|
17
|
-
}, async reason => {
|
|
18
|
-
await handler();
|
|
19
|
-
throw reason;
|
|
20
|
-
});
|
|
21
|
-
|
|
12
|
+
var _child_process = _interopRequireDefault(require("child_process"));
|
|
22
13
|
function joinChunks(chunks, encoding) {
|
|
23
|
-
if (chunks
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return buffer;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return chunks.join('');
|
|
14
|
+
if (!chunks) return undefined;
|
|
15
|
+
const buffer = Buffer.concat(chunks);
|
|
16
|
+
return encoding && encoding !== 'buffer' ? buffer.toString(encoding) : buffer;
|
|
30
17
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
const maxBuffer = options.maxBuffer != null ? options.maxBuffer : 200 * 1024;
|
|
40
|
-
let error;
|
|
18
|
+
function promisifyChildProcess(child, options) {
|
|
19
|
+
var _promise$finally;
|
|
20
|
+
const promise = new Promise((resolve, reject) => {
|
|
21
|
+
var _child$stdout, _child$stderr;
|
|
22
|
+
const encoding = options === null || options === void 0 ? void 0 : options.encoding;
|
|
23
|
+
const killSignal = options === null || options === void 0 ? void 0 : options.killSignal;
|
|
24
|
+
const captureStdio = encoding != null || (options === null || options === void 0 ? void 0 : options.maxBuffer) != null;
|
|
25
|
+
const maxBuffer = (options === null || options === void 0 ? void 0 : options.maxBuffer) ?? 1024 * 1024;
|
|
41
26
|
let bufferSize = 0;
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
27
|
+
let error;
|
|
28
|
+
const stdoutChunks = captureStdio && child.stdout ? [] : undefined;
|
|
29
|
+
const stderrChunks = captureStdio && child.stderr ? [] : undefined;
|
|
45
30
|
const capture = chunks => data => {
|
|
31
|
+
if (typeof data === 'string') data = Buffer.from(data);
|
|
46
32
|
const remaining = Math.max(0, maxBuffer - bufferSize);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
child.kill(killSignal ? killSignal : 'SIGTERM');
|
|
54
|
-
data = data.slice(0, remaining);
|
|
33
|
+
bufferSize += Math.min(remaining, data.length);
|
|
34
|
+
if (data.length > remaining) {
|
|
35
|
+
error = new Error('maxBuffer exceeded');
|
|
36
|
+
child.kill(killSignal ?? 'SIGTERM');
|
|
37
|
+
data = data.subarray(0, remaining);
|
|
55
38
|
}
|
|
56
|
-
|
|
57
39
|
chunks.push(data);
|
|
58
40
|
};
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
41
|
+
const captureStdout = stdoutChunks ? capture(stdoutChunks) : undefined;
|
|
42
|
+
const captureStderr = stderrChunks ? capture(stderrChunks) : undefined;
|
|
43
|
+
if (captureStdout) (_child$stdout = child.stdout) === null || _child$stdout === void 0 || _child$stdout.on('data', captureStdout);
|
|
44
|
+
if (captureStderr) (_child$stderr = child.stderr) === null || _child$stderr === void 0 || _child$stderr.on('data', captureStderr);
|
|
45
|
+
function onError(err) {
|
|
46
|
+
error = err;
|
|
47
|
+
done();
|
|
63
48
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
obj.stdout = joinChunks(stdoutChunks, encoding);
|
|
82
|
-
obj.stderr = joinChunks(stderrChunks, encoding);
|
|
83
|
-
} else {
|
|
84
|
-
const warn = prop => ({
|
|
85
|
-
configurable: true,
|
|
86
|
-
enumerable: true,
|
|
87
|
-
|
|
88
|
-
get() {
|
|
89
|
-
/* eslint-disable no-console */
|
|
90
|
-
console.error(new Error(`To get ${prop} from a spawned or forked process, set the \`encoding\` or \`maxBuffer\` option`).stack.replace(/^Error/, 'Warning'));
|
|
91
|
-
/* eslint-enable no-console */
|
|
92
|
-
|
|
93
|
-
return null;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
Object.defineProperties(obj, {
|
|
99
|
-
stdout: warn('stdout'),
|
|
100
|
-
stderr: warn('stderr')
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
const finalError = error;
|
|
106
|
-
|
|
107
|
-
if (finalError) {
|
|
108
|
-
defineOutputs(finalError);
|
|
109
|
-
reject(finalError);
|
|
49
|
+
child.on('error', onError);
|
|
50
|
+
function done(code = null, signal = null) {
|
|
51
|
+
var _child$stdout2, _child$stderr2;
|
|
52
|
+
child.removeListener('error', onError);
|
|
53
|
+
child.removeListener('close', done);
|
|
54
|
+
if (captureStdout) (_child$stdout2 = child.stdout) === null || _child$stdout2 === void 0 || _child$stdout2.removeListener('data', captureStdout);
|
|
55
|
+
if (captureStderr) (_child$stderr2 = child.stderr) === null || _child$stderr2 === void 0 || _child$stderr2.removeListener('data', captureStderr);
|
|
56
|
+
const stdout = joinChunks(stdoutChunks, encoding);
|
|
57
|
+
const stderr = joinChunks(stderrChunks, encoding);
|
|
58
|
+
if (error || code != null && code != 0 || signal != null) {
|
|
59
|
+
reject(Object.assign(error || new Error(signal != null ? `Process was killed with ${signal}` : `Process exited with code ${code}`), {
|
|
60
|
+
code,
|
|
61
|
+
signal,
|
|
62
|
+
killed: signal != null,
|
|
63
|
+
stdout,
|
|
64
|
+
stderr
|
|
65
|
+
}));
|
|
110
66
|
} else {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
67
|
+
resolve({
|
|
68
|
+
stderr,
|
|
69
|
+
stdout,
|
|
70
|
+
code,
|
|
71
|
+
signal,
|
|
72
|
+
killed: false
|
|
73
|
+
});
|
|
114
74
|
}
|
|
115
75
|
}
|
|
116
|
-
|
|
117
76
|
child.on('close', done);
|
|
118
77
|
});
|
|
119
|
-
|
|
120
78
|
return Object.create(child, {
|
|
121
79
|
then: {
|
|
122
|
-
value:
|
|
80
|
+
value: promise.then.bind(promise)
|
|
123
81
|
},
|
|
124
82
|
catch: {
|
|
125
|
-
value:
|
|
83
|
+
value: promise.catch.bind(promise)
|
|
126
84
|
},
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
127
86
|
finally: {
|
|
128
|
-
value:
|
|
87
|
+
value: (_promise$finally = promise.finally) === null || _promise$finally === void 0 ? void 0 : _promise$finally.bind(promise)
|
|
129
88
|
}
|
|
130
89
|
});
|
|
131
90
|
}
|
|
132
|
-
|
|
91
|
+
function isArray(t) {
|
|
92
|
+
return Array.isArray(t);
|
|
93
|
+
}
|
|
133
94
|
function spawn(command, args, options) {
|
|
134
|
-
|
|
95
|
+
if (!isArray(args)) {
|
|
96
|
+
options = args;
|
|
97
|
+
args = [];
|
|
98
|
+
}
|
|
99
|
+
return promisifyChildProcess(_child_process.default.spawn(command, args, options), options);
|
|
135
100
|
}
|
|
136
|
-
|
|
137
101
|
function fork(module, args, options) {
|
|
138
|
-
|
|
102
|
+
if (!isArray(args)) {
|
|
103
|
+
options = args;
|
|
104
|
+
args = [];
|
|
105
|
+
}
|
|
106
|
+
return promisifyChildProcess(_child_process.default.fork(module, args, options), options);
|
|
139
107
|
}
|
|
140
|
-
|
|
141
108
|
function promisifyExecMethod(method) {
|
|
142
109
|
return (...args) => {
|
|
110
|
+
var _promise$finally2;
|
|
143
111
|
let child;
|
|
144
|
-
|
|
145
|
-
const _promise = new Promise((resolve, reject) => {
|
|
112
|
+
const promise = new Promise((resolve, reject) => {
|
|
146
113
|
child = method(...args, (err, stdout, stderr) => {
|
|
147
114
|
if (err) {
|
|
148
|
-
err
|
|
149
|
-
|
|
150
|
-
|
|
115
|
+
reject(Object.assign(err, {
|
|
116
|
+
stdout,
|
|
117
|
+
stderr
|
|
118
|
+
}));
|
|
151
119
|
} else {
|
|
152
120
|
resolve({
|
|
153
121
|
code: 0,
|
|
154
122
|
signal: null,
|
|
155
|
-
|
|
156
|
-
|
|
123
|
+
killed: false,
|
|
124
|
+
stdout: stdout,
|
|
125
|
+
stderr: stderr
|
|
157
126
|
});
|
|
158
127
|
}
|
|
159
128
|
});
|
|
160
129
|
});
|
|
161
|
-
|
|
162
130
|
if (!child) {
|
|
163
131
|
throw new Error('unexpected error: child has not been initialized');
|
|
164
132
|
}
|
|
165
|
-
|
|
166
133
|
return Object.create(child, {
|
|
167
134
|
then: {
|
|
168
|
-
value:
|
|
135
|
+
value: promise.then.bind(promise)
|
|
169
136
|
},
|
|
170
137
|
catch: {
|
|
171
|
-
value:
|
|
138
|
+
value: promise.catch.bind(promise)
|
|
172
139
|
},
|
|
140
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
173
141
|
finally: {
|
|
174
|
-
value:
|
|
142
|
+
value: (_promise$finally2 = promise.finally) === null || _promise$finally2 === void 0 ? void 0 : _promise$finally2.bind(promise)
|
|
175
143
|
}
|
|
176
144
|
});
|
|
177
145
|
};
|
|
178
146
|
}
|
|
179
|
-
|
|
180
|
-
const
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
147
|
+
const exec = exports.exec = promisifyExecMethod(_child_process.default.exec);
|
|
148
|
+
const execFile = exports.execFile = promisifyExecMethod(_child_process.default.execFile);
|
|
149
|
+
function isChildProcessError(error) {
|
|
150
|
+
return error instanceof Error && 'code' in error && 'signal' in error;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=index.cjs.map
|
package/index.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["_child_process","_interopRequireDefault","require","joinChunks","chunks","encoding","undefined","buffer","Buffer","concat","toString","promisifyChildProcess","child","options","_promise$finally","promise","Promise","resolve","reject","_child$stdout","_child$stderr","killSignal","captureStdio","maxBuffer","bufferSize","error","stdoutChunks","stdout","stderrChunks","stderr","capture","data","from","remaining","Math","max","min","length","Error","kill","subarray","push","captureStdout","captureStderr","on","onError","err","done","code","signal","_child$stdout2","_child$stderr2","removeListener","Object","assign","killed","create","then","value","bind","catch","finally","isArray","t","Array","spawn","command","args","child_process","fork","module","promisifyExecMethod","method","_promise$finally2","exec","exports","execFile","isChildProcessError"],"sources":["src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/index.d.cts
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { ChildProcess, StdioOptions } from 'child_process';
|
|
2
|
+
import child_process from 'child_process';
|
|
3
|
+
import { Pipe, Readable, Writable } from 'stream';
|
|
4
|
+
interface IOOptions {
|
|
5
|
+
silent?: boolean;
|
|
6
|
+
stdio?: StdioOptions;
|
|
7
|
+
encoding?: BufferEncoding | 'buffer' | null;
|
|
8
|
+
maxBuffer?: number;
|
|
9
|
+
}
|
|
10
|
+
type ChunkTypeHelper<MaxBuffer, Encoding> = MaxBuffer extends number ? Encoding extends BufferEncoding ? string : Buffer : Encoding extends BufferEncoding ? string : Encoding extends 'buffer' ? Buffer : undefined;
|
|
11
|
+
type ChunkType<Options extends IOOptions> = ChunkTypeHelper<'maxBuffer' extends keyof Options ? Options['maxBuffer'] : undefined, 'encoding' extends keyof Options ? Options['encoding'] : undefined>;
|
|
12
|
+
type IsPipeHelper<Stdio, Silent, Fd extends 0 | 1 | 2> = Stdio extends unknown[] ? Stdio[Fd] extends infer Value ? Value extends 'pipe' | 'overlapped' ? true : false : false : Stdio extends null | undefined | 'pipe' | 'overlapped' ? true : Stdio extends null | undefined ? Silent extends true ? false : true : false;
|
|
13
|
+
type IsPipe<Options extends IOOptions, Fd extends 0 | 1 | 2> = IsPipeHelper<'stdio' extends keyof Options ? Options['stdio'] : undefined, 'silent' extends keyof Options ? Options['silent'] : undefined, Fd>;
|
|
14
|
+
type Contains<A, T> = A extends [infer Head, ...infer Tail] ? Head extends T ? true : Contains<Tail, T> : false;
|
|
15
|
+
export interface ChildProcessResult<Options extends IOOptions> {
|
|
16
|
+
stdout: IsPipe<Options, 1> extends true ? ChunkType<Options> : undefined;
|
|
17
|
+
stderr: IsPipe<Options, 2> extends true ? ChunkType<Options> : undefined;
|
|
18
|
+
code: number | null;
|
|
19
|
+
signal: string | null;
|
|
20
|
+
killed: boolean;
|
|
21
|
+
}
|
|
22
|
+
type StdioStreams<Stdio> = { [K in keyof Stdio]: Stdio[K] extends 'pipe' | 'overlapped' ? K extends 0 | '0' ? Writable : Readable : null };
|
|
23
|
+
export interface ChildProcessPromise<Options extends IOOptions> extends ChildProcess, Promise<ChildProcessResult<Options>> {
|
|
24
|
+
stdin: IsPipe<Options, 0> extends true ? Writable : null;
|
|
25
|
+
stdout: IsPipe<Options, 1> extends true ? Readable : null;
|
|
26
|
+
stderr: IsPipe<Options, 2> extends true ? Readable : null;
|
|
27
|
+
readonly channel: Options['stdio'] extends infer Stdio ? Contains<Stdio, 'ipc'> extends true ? Pipe : undefined : undefined;
|
|
28
|
+
readonly stdio: Options['stdio'] extends infer Stdio ? Stdio extends unknown[] ? StdioStreams<Stdio> : Stdio extends null | undefined | 'pipe' | 'overlapped' ? [Writable, Readable, Readable, undefined, undefined] : [null, null, null, undefined, undefined] : [null, null, null, undefined, undefined];
|
|
29
|
+
}
|
|
30
|
+
interface PromisifyChildProcessBaseOptions extends IOOptions {
|
|
31
|
+
killSignal?: NodeJS.Signals | number;
|
|
32
|
+
}
|
|
33
|
+
export declare function promisifyChildProcess<Options extends PromisifyChildProcessBaseOptions>(child: ChildProcess, options?: Options): ChildProcessPromise<Options>;
|
|
34
|
+
export interface SpawnOptions extends child_process.SpawnOptions {
|
|
35
|
+
encoding?: BufferEncoding;
|
|
36
|
+
maxBuffer?: number;
|
|
37
|
+
}
|
|
38
|
+
export declare function spawn<Options extends SpawnOptions>(command: string, args: readonly string[], options?: Options): ChildProcessPromise<Options>;
|
|
39
|
+
export declare function spawn<Options extends SpawnOptions>(command: string, options?: Options): ChildProcessPromise<Options>;
|
|
40
|
+
export interface ForkOptions extends child_process.ForkOptions {
|
|
41
|
+
encoding?: BufferEncoding;
|
|
42
|
+
maxBuffer?: number;
|
|
43
|
+
}
|
|
44
|
+
export declare function fork<Options extends ForkOptions>(module: string, args: Array<string>, options?: Options): ChildProcessPromise<Options>;
|
|
45
|
+
export declare function fork<Options extends ForkOptions>(module: string, options?: Options): ChildProcessPromise<Options>;
|
|
46
|
+
export interface ExecOptions extends child_process.ExecOptions {
|
|
47
|
+
encoding?: BufferEncoding | 'buffer';
|
|
48
|
+
}
|
|
49
|
+
export declare const exec: <Options extends ExecOptions>(command: string, options?: Options) => ChildProcessPromise<Options>;
|
|
50
|
+
export interface ExecFileOptions extends child_process.ExecFileOptions {
|
|
51
|
+
encoding?: BufferEncoding | 'buffer';
|
|
52
|
+
}
|
|
53
|
+
export declare const execFile: {
|
|
54
|
+
<Options extends ExecFileOptions>(file: string, args: readonly string[], options?: Options): ChildProcessPromise<Options>;
|
|
55
|
+
<Options extends ExecFileOptions>(file: string, options?: Options): ChildProcessPromise<Options>;
|
|
56
|
+
};
|
|
57
|
+
export declare function isChildProcessError(error: unknown): error is Error & {
|
|
58
|
+
code: number | null;
|
|
59
|
+
signal: NodeJS.Signals | null;
|
|
60
|
+
killed: boolean;
|
|
61
|
+
stdout?: string | Buffer;
|
|
62
|
+
stderr?: string | Buffer;
|
|
63
|
+
};
|
|
64
|
+
export {};
|
|
65
|
+
//# sourceMappingURL=index.d.cts.map
|
package/index.d.cts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":["ChildProcess","StdioOptions","child_process","Pipe","Readable","Writable","IOOptions","silent","stdio","encoding","BufferEncoding","maxBuffer","ChunkTypeHelper","MaxBuffer","Encoding","Buffer","ChunkType","Options","IsPipeHelper","Stdio","Fd","Value","Silent","IsPipe","Contains","A","Head","T","Tail","ChildProcessResult","stdout","stderr","code","signal","killed","StdioStreams","K","ChildProcessPromise","Promise","stdin","channel","PromisifyChildProcessBaseOptions","killSignal","NodeJS","Signals","promisifyChildProcess","child","options","SpawnOptions","spawn","command","args","ForkOptions","fork","module","Array","ExecOptions","exec","ExecFileOptions","execFile","file","isChildProcessError","error","Error"],"sources":["src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/index.d.ts
CHANGED
|
@@ -1,68 +1,65 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export interface Output {
|
|
10
|
-
stdout?: string | Buffer | null | undefined
|
|
11
|
-
stderr?: string | Buffer | null | undefined
|
|
12
|
-
code?: number | null
|
|
13
|
-
signal?: string | null
|
|
1
|
+
import { ChildProcess, StdioOptions } from 'child_process';
|
|
2
|
+
import child_process from 'child_process';
|
|
3
|
+
import { Pipe, Readable, Writable } from 'stream';
|
|
4
|
+
interface IOOptions {
|
|
5
|
+
silent?: boolean;
|
|
6
|
+
stdio?: StdioOptions;
|
|
7
|
+
encoding?: BufferEncoding | 'buffer' | null;
|
|
8
|
+
maxBuffer?: number;
|
|
14
9
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export interface
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
10
|
+
type ChunkTypeHelper<MaxBuffer, Encoding> = MaxBuffer extends number ? Encoding extends BufferEncoding ? string : Buffer : Encoding extends BufferEncoding ? string : Encoding extends 'buffer' ? Buffer : undefined;
|
|
11
|
+
type ChunkType<Options extends IOOptions> = ChunkTypeHelper<'maxBuffer' extends keyof Options ? Options['maxBuffer'] : undefined, 'encoding' extends keyof Options ? Options['encoding'] : undefined>;
|
|
12
|
+
type IsPipeHelper<Stdio, Silent, Fd extends 0 | 1 | 2> = Stdio extends unknown[] ? Stdio[Fd] extends infer Value ? Value extends 'pipe' | 'overlapped' ? true : false : false : Stdio extends null | undefined | 'pipe' | 'overlapped' ? true : Stdio extends null | undefined ? Silent extends true ? false : true : false;
|
|
13
|
+
type IsPipe<Options extends IOOptions, Fd extends 0 | 1 | 2> = IsPipeHelper<'stdio' extends keyof Options ? Options['stdio'] : undefined, 'silent' extends keyof Options ? Options['silent'] : undefined, Fd>;
|
|
14
|
+
type Contains<A, T> = A extends [infer Head, ...infer Tail] ? Head extends T ? true : Contains<Tail, T> : false;
|
|
15
|
+
export interface ChildProcessResult<Options extends IOOptions> {
|
|
16
|
+
stdout: IsPipe<Options, 1> extends true ? ChunkType<Options> : undefined;
|
|
17
|
+
stderr: IsPipe<Options, 2> extends true ? ChunkType<Options> : undefined;
|
|
18
|
+
code: number | null;
|
|
19
|
+
signal: string | null;
|
|
20
|
+
killed: boolean;
|
|
24
21
|
}
|
|
25
|
-
|
|
26
|
-
export
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
options?:
|
|
58
|
-
): ChildProcessPromise
|
|
59
|
-
|
|
60
|
-
export function
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
22
|
+
type StdioStreams<Stdio> = { [K in keyof Stdio]: Stdio[K] extends 'pipe' | 'overlapped' ? K extends 0 | '0' ? Writable : Readable : null };
|
|
23
|
+
export interface ChildProcessPromise<Options extends IOOptions> extends ChildProcess, Promise<ChildProcessResult<Options>> {
|
|
24
|
+
stdin: IsPipe<Options, 0> extends true ? Writable : null;
|
|
25
|
+
stdout: IsPipe<Options, 1> extends true ? Readable : null;
|
|
26
|
+
stderr: IsPipe<Options, 2> extends true ? Readable : null;
|
|
27
|
+
readonly channel: Options['stdio'] extends infer Stdio ? Contains<Stdio, 'ipc'> extends true ? Pipe : undefined : undefined;
|
|
28
|
+
readonly stdio: Options['stdio'] extends infer Stdio ? Stdio extends unknown[] ? StdioStreams<Stdio> : Stdio extends null | undefined | 'pipe' | 'overlapped' ? [Writable, Readable, Readable, undefined, undefined] : [null, null, null, undefined, undefined] : [null, null, null, undefined, undefined];
|
|
29
|
+
}
|
|
30
|
+
interface PromisifyChildProcessBaseOptions extends IOOptions {
|
|
31
|
+
killSignal?: NodeJS.Signals | number;
|
|
32
|
+
}
|
|
33
|
+
export declare function promisifyChildProcess<Options extends PromisifyChildProcessBaseOptions>(child: ChildProcess, options?: Options): ChildProcessPromise<Options>;
|
|
34
|
+
export interface SpawnOptions extends child_process.SpawnOptions {
|
|
35
|
+
encoding?: BufferEncoding;
|
|
36
|
+
maxBuffer?: number;
|
|
37
|
+
}
|
|
38
|
+
export declare function spawn<Options extends SpawnOptions>(command: string, args: readonly string[], options?: Options): ChildProcessPromise<Options>;
|
|
39
|
+
export declare function spawn<Options extends SpawnOptions>(command: string, options?: Options): ChildProcessPromise<Options>;
|
|
40
|
+
export interface ForkOptions extends child_process.ForkOptions {
|
|
41
|
+
encoding?: BufferEncoding;
|
|
42
|
+
maxBuffer?: number;
|
|
43
|
+
}
|
|
44
|
+
export declare function fork<Options extends ForkOptions>(module: string, args: Array<string>, options?: Options): ChildProcessPromise<Options>;
|
|
45
|
+
export declare function fork<Options extends ForkOptions>(module: string, options?: Options): ChildProcessPromise<Options>;
|
|
46
|
+
export interface ExecOptions extends child_process.ExecOptions {
|
|
47
|
+
encoding?: BufferEncoding | 'buffer';
|
|
48
|
+
}
|
|
49
|
+
export declare const exec: <Options extends ExecOptions>(command: string, options?: Options) => ChildProcessPromise<Options>;
|
|
50
|
+
export interface ExecFileOptions extends child_process.ExecFileOptions {
|
|
51
|
+
encoding?: BufferEncoding | 'buffer';
|
|
52
|
+
}
|
|
53
|
+
export declare const execFile: {
|
|
54
|
+
<Options extends ExecFileOptions>(file: string, args: readonly string[], options?: Options): ChildProcessPromise<Options>;
|
|
55
|
+
<Options extends ExecFileOptions>(file: string, options?: Options): ChildProcessPromise<Options>;
|
|
56
|
+
};
|
|
57
|
+
export declare function isChildProcessError(error: unknown): error is Error & {
|
|
58
|
+
code: number | null;
|
|
59
|
+
signal: NodeJS.Signals | null;
|
|
60
|
+
killed: boolean;
|
|
61
|
+
stdout?: string | Buffer;
|
|
62
|
+
stderr?: string | Buffer;
|
|
63
|
+
};
|
|
64
|
+
export {};
|
|
65
|
+
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["ChildProcess","StdioOptions","child_process","Pipe","Readable","Writable","IOOptions","silent","stdio","encoding","BufferEncoding","maxBuffer","ChunkTypeHelper","MaxBuffer","Encoding","Buffer","ChunkType","Options","IsPipeHelper","Stdio","Fd","Value","Silent","IsPipe","Contains","A","Head","T","Tail","ChildProcessResult","stdout","stderr","code","signal","killed","StdioStreams","K","ChildProcessPromise","Promise","stdin","channel","PromisifyChildProcessBaseOptions","killSignal","NodeJS","Signals","promisifyChildProcess","child","options","SpawnOptions","spawn","command","args","ForkOptions","fork","module","Array","ExecOptions","exec","ExecFileOptions","execFile","file","isChildProcessError","error","Error"],"sources":["src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|