UNPKG

@firfi/quint-connect

Version:

Model-based testing framework connecting Quint specifications to TypeScript implementations

39 lines 1.91 kB
import { Effect } from "effect"; interface ProcessHandle { readonly pid?: number | undefined; } interface CommandHandle { readonly kill: () => unknown; } type RunCommand = (command: string, args: ReadonlyArray<string>, callback: (error: Error | null, stdout: string) => void) => CommandHandle; type RunCommandSync = (command: string, args: ReadonlyArray<string>) => boolean; interface PlatformProcessDeps { readonly platform: NodeJS.Platform; readonly runCommand: RunCommand; readonly runCommandSync: RunCommandSync; readonly killProcess: (pid: number, signal: NodeJS.Signals) => unknown; readonly addExitListener: (listener: () => void) => void; readonly removeExitListener: (listener: () => void) => void; readonly addSignalListener: (signal: NodeJS.Signals, listener: () => void) => void; readonly removeSignalListener: (signal: NodeJS.Signals, listener: () => void) => void; readonly signalSelf: (signal: NodeJS.Signals) => void; } export interface PlatformProcessBoundary { /** * Rust parity: upstream invokes `quint.cmd` on Windows and `quint` elsewhere. * https://github.com/informalsystems/quint-connect/blob/4f018f54fc7dd4cef341d10111427bab59d3b307/connect/src/trace/generator/utils.rs#L3-L9 */ readonly commandName: (name: string) => string; readonly executableName: (name: string) => string; readonly detached: boolean; readonly makeLifecycle: (getActiveProcess: () => ProcessHandle) => { readonly complete: () => void; readonly interrupt: Effect.Effect<void>; }; readonly countEvaluatorProcesses: Effect.Effect<number>; readonly evaluatorCleanupHint: string; } export declare const makePlatformProcessBoundary: (deps?: PlatformProcessDeps) => PlatformProcessBoundary; export declare const platformProcess: PlatformProcessBoundary; export {}; //# sourceMappingURL=platform-process.d.ts.map