UNPKG

@stryker-mutator/core

Version:

The extendable JavaScript mutation testing framework

45 lines 2.22 kB
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