mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-09 11:13:57 +08:00
Merge pull request #8584 from DefinitelyTyped/improve-node-child_process
Improve node child process
This commit is contained in:
Vendored
+116
-45
@@ -80,6 +80,7 @@ declare var SlowBuffer: {
|
||||
|
||||
|
||||
// Buffer class
|
||||
type BufferEncoding = "ascii" | "utf8" | "utf16le" | "ucs2" | "binary" | "hex";
|
||||
interface Buffer extends NodeBuffer {}
|
||||
|
||||
/**
|
||||
@@ -227,8 +228,8 @@ declare module NodeJS {
|
||||
removeListener(event: string, listener: Function): this;
|
||||
removeAllListeners(event?: string): this;
|
||||
}
|
||||
|
||||
export interface MemoryUsage {
|
||||
|
||||
export interface MemoryUsage {
|
||||
rss: number;
|
||||
heapTotal: number;
|
||||
heapUsed: number;
|
||||
@@ -945,7 +946,7 @@ declare module "child_process" {
|
||||
stdin: stream.Writable;
|
||||
stdout: stream.Readable;
|
||||
stderr: stream.Readable;
|
||||
stdio: (stream.Readable|stream.Writable)[];
|
||||
stdio: [stream.Writable, stream.Readable, stream.Readable];
|
||||
pid: number;
|
||||
kill(signal?: string): void;
|
||||
send(message: any, sendHandle?: any): void;
|
||||
@@ -953,39 +954,66 @@ declare module "child_process" {
|
||||
unref(): void;
|
||||
}
|
||||
|
||||
export function spawn(command: string, args?: string[], options?: {
|
||||
export interface SpawnOptions {
|
||||
cwd?: string;
|
||||
stdio?: any;
|
||||
custom?: any;
|
||||
env?: any;
|
||||
stdio?: any;
|
||||
detached?: boolean;
|
||||
}): ChildProcess;
|
||||
export function exec(command: string, options: {
|
||||
uid?: number;
|
||||
gid?: number;
|
||||
shell?: boolean | string;
|
||||
}
|
||||
export function spawn(command: string, args?: string[], options?: SpawnOptions): ChildProcess;
|
||||
|
||||
export interface ExecOptions {
|
||||
cwd?: string;
|
||||
stdio?: any;
|
||||
customFds?: any;
|
||||
env?: any;
|
||||
encoding?: string;
|
||||
shell?: string;
|
||||
timeout?: number;
|
||||
maxBuffer?: number;
|
||||
killSignal?: string;
|
||||
}, callback?: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess;
|
||||
export function exec(command: string, callback?: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess;
|
||||
export function execFile(file: string,
|
||||
callback?: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess;
|
||||
export function execFile(file: string, args?: string[],
|
||||
callback?: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess;
|
||||
export function execFile(file: string, args?: string[], options?: {
|
||||
uid?: number;
|
||||
gid?: number;
|
||||
}
|
||||
export interface ExecOptionsWithStringEncoding extends ExecOptions {
|
||||
encoding: BufferEncoding;
|
||||
}
|
||||
export interface ExecOptionsWithBufferEncoding extends ExecOptions {
|
||||
encoding: string; // specify `null`.
|
||||
}
|
||||
export function exec(command: string, callback?: (error: Error, stdout: string, stderr: string) =>void ): ChildProcess;
|
||||
export function exec(command: string, options: ExecOptionsWithStringEncoding, callback?: (error: Error, stdout: string, stderr: string) =>void ): ChildProcess;
|
||||
// usage. child_process.exec("tsc", {encoding: null as string}, (err, stdout, stderr) => {});
|
||||
export function exec(command: string, options: ExecOptionsWithBufferEncoding, callback?: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess;
|
||||
export function exec(command: string, options: ExecOptions, callback?: (error: Error, stdout: string, stderr: string) =>void ): ChildProcess;
|
||||
|
||||
export interface ExecFileOptions {
|
||||
cwd?: string;
|
||||
stdio?: any;
|
||||
customFds?: any;
|
||||
env?: any;
|
||||
encoding?: string;
|
||||
timeout?: number;
|
||||
maxBuffer?: number;
|
||||
killSignal?: string;
|
||||
}, callback?: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess;
|
||||
export function fork(modulePath: string, args?: string[], options?: {
|
||||
uid?: number;
|
||||
gid?: number;
|
||||
}
|
||||
export interface ExecFileOptionsWithStringEncoding extends ExecFileOptions {
|
||||
encoding: BufferEncoding;
|
||||
}
|
||||
export interface ExecFileOptionsWithBufferEncoding extends ExecFileOptions {
|
||||
encoding: string; // specify `null`.
|
||||
}
|
||||
export function execFile(file: string, callback?: (error: Error, stdout: string, stderr: string) =>void ): ChildProcess;
|
||||
export function execFile(file: string, options?: ExecFileOptionsWithStringEncoding, callback?: (error: Error, stdout: string, stderr: string) =>void ): ChildProcess;
|
||||
// usage. child_process.execFile("file.sh", {encoding: null as string}, (err, stdout, stderr) => {});
|
||||
export function execFile(file: string, options?: ExecFileOptionsWithBufferEncoding, callback?: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess;
|
||||
export function execFile(file: string, options?: ExecFileOptions, callback?: (error: Error, stdout: string, stderr: string) =>void ): ChildProcess;
|
||||
export function execFile(file: string, args?: string[], callback?: (error: Error, stdout: string, stderr: string) =>void ): ChildProcess;
|
||||
export function execFile(file: string, args?: string[], options?: ExecFileOptionsWithStringEncoding, callback?: (error: Error, stdout: string, stderr: string) =>void ): ChildProcess;
|
||||
// usage. child_process.execFile("file.sh", ["foo"], {encoding: null as string}, (err, stdout, stderr) => {});
|
||||
export function execFile(file: string, args?: string[], options?: ExecFileOptionsWithBufferEncoding, callback?: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess;
|
||||
export function execFile(file: string, args?: string[], options?: ExecFileOptions, callback?: (error: Error, stdout: string, stderr: string) =>void ): ChildProcess;
|
||||
|
||||
export interface ForkOptions {
|
||||
cwd?: string;
|
||||
env?: any;
|
||||
execPath?: string;
|
||||
@@ -993,8 +1021,10 @@ declare module "child_process" {
|
||||
silent?: boolean;
|
||||
uid?: number;
|
||||
gid?: number;
|
||||
}): ChildProcess;
|
||||
export function spawnSync(command: string, args?: string[], options?: {
|
||||
}
|
||||
export function fork(modulePath: string, args?: string[], options?: ForkOptions): ChildProcess;
|
||||
|
||||
export interface SpawnSyncOptions {
|
||||
cwd?: string;
|
||||
input?: string | Buffer;
|
||||
stdio?: any;
|
||||
@@ -1002,42 +1032,83 @@ declare module "child_process" {
|
||||
uid?: number;
|
||||
gid?: number;
|
||||
timeout?: number;
|
||||
maxBuffer?: number;
|
||||
killSignal?: string;
|
||||
maxBuffer?: number;
|
||||
encoding?: string;
|
||||
}): {
|
||||
shell?: boolean | string;
|
||||
}
|
||||
export interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions {
|
||||
encoding: BufferEncoding;
|
||||
}
|
||||
export interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions {
|
||||
encoding: string; // specify `null`.
|
||||
}
|
||||
export interface SpawnSyncReturns<T> {
|
||||
pid: number;
|
||||
output: string[];
|
||||
stdout: string | Buffer;
|
||||
stderr: string | Buffer;
|
||||
stdout: T;
|
||||
stderr: T;
|
||||
status: number;
|
||||
signal: string;
|
||||
error: Error;
|
||||
};
|
||||
export function execSync(command: string, options?: {
|
||||
}
|
||||
export function spawnSync(command: string): SpawnSyncReturns<Buffer>;
|
||||
export function spawnSync(command: string, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns<string>;
|
||||
export function spawnSync(command: string, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns<Buffer>;
|
||||
export function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns<Buffer>;
|
||||
export function spawnSync(command: string, args?: string[], options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns<string>;
|
||||
export function spawnSync(command: string, args?: string[], options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns<Buffer>;
|
||||
export function spawnSync(command: string, args?: string[], options?: SpawnSyncOptions): SpawnSyncReturns<Buffer>;
|
||||
|
||||
export interface ExecSyncOptions {
|
||||
cwd?: string;
|
||||
input?: string|Buffer;
|
||||
input?: string | Buffer;
|
||||
stdio?: any;
|
||||
env?: any;
|
||||
shell?: string;
|
||||
uid?: number;
|
||||
gid?: number;
|
||||
timeout?: number;
|
||||
killSignal?: string;
|
||||
maxBuffer?: number;
|
||||
encoding?: string;
|
||||
}
|
||||
export interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions {
|
||||
encoding: BufferEncoding;
|
||||
}
|
||||
export interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions {
|
||||
encoding: string; // specify `null`.
|
||||
}
|
||||
export function execSync(command: string): Buffer;
|
||||
export function execSync(command: string, options?: ExecSyncOptionsWithStringEncoding): string;
|
||||
export function execSync(command: string, options?: ExecSyncOptionsWithBufferEncoding): Buffer;
|
||||
export function execSync(command: string, options?: ExecSyncOptions): Buffer;
|
||||
|
||||
export interface ExecFileSyncOptions {
|
||||
cwd?: string;
|
||||
input?: string | Buffer;
|
||||
stdio?: any;
|
||||
env?: any;
|
||||
uid?: number;
|
||||
gid?: number;
|
||||
timeout?: number;
|
||||
maxBuffer?: number;
|
||||
killSignal?: string;
|
||||
encoding?: string;
|
||||
}): string | Buffer;
|
||||
export function execFileSync(command: string, args?: string[], options?: {
|
||||
cwd?: string;
|
||||
input?: string|Buffer;
|
||||
stdio?: any;
|
||||
env?: any;
|
||||
uid?: number;
|
||||
gid?: number;
|
||||
timeout?: number;
|
||||
maxBuffer?: number;
|
||||
killSignal?: string;
|
||||
encoding?: string;
|
||||
}): string | Buffer;
|
||||
}
|
||||
export interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions {
|
||||
encoding: BufferEncoding;
|
||||
}
|
||||
export interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions {
|
||||
encoding: string; // specify `null`.
|
||||
}
|
||||
export function execFileSync(command: string): Buffer;
|
||||
export function execFileSync(command: string, options?: ExecFileSyncOptionsWithStringEncoding): string;
|
||||
export function execFileSync(command: string, options?: ExecFileSyncOptionsWithBufferEncoding): Buffer;
|
||||
export function execFileSync(command: string, options?: ExecFileSyncOptions): Buffer;
|
||||
export function execFileSync(command: string, args?: string[], options?: ExecFileSyncOptionsWithStringEncoding): string;
|
||||
export function execFileSync(command: string, args?: string[], options?: ExecFileSyncOptionsWithBufferEncoding): Buffer;
|
||||
export function execFileSync(command: string, args?: string[], options?: ExecFileSyncOptions): Buffer;
|
||||
}
|
||||
|
||||
declare module "url" {
|
||||
|
||||
@@ -13,7 +13,7 @@ if (process.argv.slice(2)[0] === 'completion') {
|
||||
if (/^-\w?/.test(data.last)) return tabtab.log(['n', 'o', 'd', 'e'], data, '-');
|
||||
tabtab.log(['list', 'of', 'commands'], data);
|
||||
|
||||
child_process.exec('rake -H', function(err, stdout, stderr) {
|
||||
child_process.exec('rake -H', {encoding: null as string}, function(err, stdout, stderr) {
|
||||
if (err) return;
|
||||
var decoder = new string_decoder.StringDecoder('utf8');
|
||||
var parsed = tabtab.parseOut(decoder.write(stdout));
|
||||
@@ -21,7 +21,7 @@ if (process.argv.slice(2)[0] === 'completion') {
|
||||
if (/^-\w?/.test(data.last)) return tabtab.log(parsed.shorts, data, '-');
|
||||
});
|
||||
|
||||
child_process.exec('cake', function(err, stdout, stderr) {
|
||||
child_process.exec('cake', {encoding: null as string}, function(err, stdout, stderr) {
|
||||
if (err) return;
|
||||
var decoder = new string_decoder.StringDecoder('utf8');
|
||||
var tasks = tabtab.parseTasks(decoder.write(stdout), 'cake');
|
||||
|
||||
Reference in New Issue
Block a user