@stryker-mutator/core
Version:
The extendable JavaScript mutation testing framework
45 lines • 2.22 kB
TypeScript
import { FileDescriptions, StrykerOptions } from '@stryker-mutator/api/core';
import { Disposable, InjectableClass, InjectionToken } from 'typed-inject';
import { LoggingServerAddress } from '../logging/index.js';
import { ChildProcessContext } from './child-process-proxy-worker.js';
import { IdGenerator } from './id-generator.js';
import { LoggerFactoryMethod } from '@stryker-mutator/api/logging';
type Func<TS extends any[], R> = (...args: TS) => R;
type PromisifiedFunc<TS extends any[], R> = (...args: TS) => Promise<R>;
export type Promisified<T> = {
[K in keyof T]: T[K] extends PromisifiedFunc<any, any> ? T[K] : T[K] extends Func<infer TS, infer R> ? PromisifiedFunc<TS, R> : () => Promise<T[K]>;
};
export declare class ChildProcessProxy<T> implements Disposable {
readonly proxy: Promisified<T>;
private readonly worker;
private readonly initTask;
private disposeTask;
private fatalError;
private readonly workerTasks;
private workerTaskCounter;
private readonly log;
private readonly stdoutBuilder;
private readonly stderrBuilder;
private isDisposed;
private readonly initMessage;
private constructor();
/**
* @description Creates a proxy where each function of the object created using the constructorFunction arg is ran inside of a child process
*/
static create<R, Tokens extends Array<InjectionToken<ChildProcessContext>>>(modulePath: string, loggingServerAddress: LoggingServerAddress, options: StrykerOptions, fileDescriptions: FileDescriptions, pluginModulePaths: readonly string[], workingDirectory: string, injectableClass: InjectableClass<ChildProcessContext, R, Tokens>, execArgv: string[], getLogger: LoggerFactoryMethod, idGenerator: IdGenerator): ChildProcessProxy<R>;
private send;
private initProxy;
private forward;
private listenForMessages;
private listenToStdoutAndStderr;
get stdout(): string;
get stderr(): string;
private reportError;
private readonly handleUnexpectedExit;
private readonly handleError;
private innerProcessIsCrashed;
dispose(): Promise<void>;
private logUnidentifiedMessage;
}
export {};
//# sourceMappingURL=child-process-proxy.d.ts.map