56 lines
1.7 KiB
TypeScript
56 lines
1.7 KiB
TypeScript
/** An event emitted by the child process. */
|
|
export type Event = StdoutEvent | StderrEvent | ExitEvent;
|
|
/** An event sent from the worker to the host. */
|
|
export type InternalEvent = InternalStdoutEvent | InternalStderrEvent | ExitEvent | ErrorEvent;
|
|
/** An event indicating that data has been emitted over stdout. */
|
|
export interface StdoutEvent {
|
|
type: 'stdout';
|
|
data: Buffer;
|
|
}
|
|
/** An event indicating that data has been emitted over stderr. */
|
|
export interface StderrEvent {
|
|
type: 'stderr';
|
|
data: Buffer;
|
|
}
|
|
/** An event indicating that process has exited. */
|
|
export interface ExitEvent {
|
|
type: 'exit';
|
|
/**
|
|
* The exit code. This will be `undefined` if the subprocess was killed via
|
|
* signal.
|
|
*/
|
|
code?: number;
|
|
/**
|
|
* The signal that caused this process to exit. This will be `undefined` if
|
|
* the subprocess exited normally.
|
|
*/
|
|
signal?: NodeJS.Signals;
|
|
}
|
|
/**
|
|
* The stdout event sent from the worker to the host. The structured clone
|
|
* algorithm automatically converts `Buffer`s sent through `MessagePort`s to
|
|
* `Uint8Array`s.
|
|
*/
|
|
export interface InternalStdoutEvent {
|
|
type: 'stdout';
|
|
data: Buffer | Uint8Array;
|
|
}
|
|
/**
|
|
* The stderr event sent from the worker to the host. The structured clone
|
|
* algorithm automatically converts `Buffer`s sent through `MessagePort`s to
|
|
* `Uint8Array`s.
|
|
*/
|
|
export interface InternalStderrEvent {
|
|
type: 'stderr';
|
|
data: Buffer | Uint8Array;
|
|
}
|
|
/**
|
|
* An error occurred when starting or closing the child process. This is only
|
|
* used internally; the host will throw the error rather than returning it to
|
|
* the caller.
|
|
*/
|
|
export interface ErrorEvent {
|
|
type: 'error';
|
|
error: Error;
|
|
}
|