import type { RawExecOptions } from './types'; export interface ExecErrorData { cmd: string; stderr: string; stdout: string; options: RawExecOptions; exitCode?: number; signal?: NodeJS.Signals; } export class ExecError extends Error { cmd: string; stderr: string; stdout: string; options: RawExecOptions; exitCode?: number; signal?: NodeJS.Signals; err?: Error; constructor(message: string, data: ExecErrorData, err?: Error) { const { cmd, exitCode, stderr, stdout, options, signal } = data; super(message); this.name = this.constructor.name; this.cmd = cmd; this.stderr = stderr; this.stdout = stdout; this.options = options; if (exitCode) { this.exitCode = exitCode; } if (signal) { this.signal = signal; } if (err) { this.err = err; } } }