@stryker-mutator/core
Version:
The extendable JavaScript mutation testing framework
83 lines (72 loc) • 1.78 kB
text/typescript
import { FileDescriptions, StrykerOptions } from '@stryker-mutator/api/core';
import { LoggingClientContext } from '../logging/index.js';
export enum WorkerMessageKind {
Init,
Call,
Dispose,
}
export enum ParentMessageKind {
/**
* Indicates that the child process is spawned and ready to receive messages
*/
Ready,
/**
* Indicates that initialization is done
*/
Initialized,
/**
* Indicates an error happened during initialization
*/
InitError,
/**
* Indicates that a 'Call' was successful
*/
CallResult,
/**
* Indicates that a 'Call' was rejected
*/
CallRejection,
/**
* Indicates that a 'Dispose' was completed
*/
DisposeCompleted,
}
export type WorkerMessage = CallMessage | DisposeMessage | InitMessage;
export type ParentMessage =
| InitRejectionResult
| RejectionResult
| WorkResult
| { kind: ParentMessageKind.DisposeCompleted | ParentMessageKind.Initialized | ParentMessageKind.Ready };
export interface InitMessage {
kind: WorkerMessageKind.Init;
loggingContext: LoggingClientContext;
options: StrykerOptions;
fileDescriptions: FileDescriptions;
pluginModulePaths: readonly string[];
workingDirectory: string;
namedExport: string;
modulePath: string;
}
export interface DisposeMessage {
kind: WorkerMessageKind.Dispose;
}
export interface WorkResult {
kind: ParentMessageKind.CallResult;
correlationId: number;
result: any;
}
export interface RejectionResult {
kind: ParentMessageKind.CallRejection;
correlationId: number;
error: string;
}
export interface InitRejectionResult {
kind: ParentMessageKind.InitError;
error: string;
}
export interface CallMessage {
correlationId: number;
kind: WorkerMessageKind.Call;
args: any[];
methodName: string;
}