everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
1 lines • 2.58 kB
Source Map (JSON)
{"version":3,"file":"run.mjs","names":[],"sources":["../../src/utils/run.ts"],"sourcesContent":["import { execa } from \"execa\";\n\ntype RunResult = { stdout: string; stderr: string; exitCode: number };\n\nexport async function run(\n cmd: string,\n args: string[],\n options: {\n cwd?: string;\n env?: Record<string, string>;\n capture?: boolean;\n onChunk?: (stream: \"stdout\" | \"stderr\", chunk: Buffer) => void;\n } = {},\n): Promise<RunResult | undefined> {\n const proc = execa(cmd, args, {\n cwd: options.cwd,\n env: options.env ? { ...(process.env as Record<string, string>), ...options.env } : process.env,\n stdio: options.capture ? \"pipe\" : \"inherit\",\n reject: false,\n });\n\n let capturedStdout = \"\";\n let capturedStderr = \"\";\n\n if (options.capture && options.onChunk) {\n proc.stdout?.on(\"data\", (chunk: Buffer) => {\n capturedStdout += chunk.toString(\"utf-8\");\n options.onChunk!(\"stdout\", chunk);\n });\n proc.stderr?.on(\"data\", (chunk: Buffer) => {\n capturedStderr += chunk.toString(\"utf-8\");\n options.onChunk!(\"stderr\", chunk);\n });\n }\n\n await proc;\n\n if (!options.capture) {\n const exitCode = proc.exitCode ?? 0;\n if (exitCode !== 0) {\n throw new Error(`${cmd} ${args.join(\" \")} failed with exit code ${exitCode}`);\n }\n return;\n }\n\n if (options.onChunk) {\n return {\n stdout: capturedStdout,\n stderr: capturedStderr,\n exitCode: proc.exitCode ?? 0,\n };\n }\n\n const result: RunResult = {\n stdout: typeof proc.stdout === \"string\" ? proc.stdout : \"\",\n stderr: typeof proc.stderr === \"string\" ? proc.stderr : \"\",\n exitCode: proc.exitCode ?? 0,\n };\n return result;\n}\n"],"mappings":";;;AAIA,eAAsB,IACpB,KACA,MACA,UAKI,EAAE,EAC0B;CAChC,MAAM,OAAO,MAAM,KAAK,MAAM;EAC5B,KAAK,QAAQ;EACb,KAAK,QAAQ,MAAM;GAAE,GAAI,QAAQ;GAAgC,GAAG,QAAQ;GAAK,GAAG,QAAQ;EAC5F,OAAO,QAAQ,UAAU,SAAS;EAClC,QAAQ;EACT,CAAC;CAEF,IAAI,iBAAiB;CACrB,IAAI,iBAAiB;AAErB,KAAI,QAAQ,WAAW,QAAQ,SAAS;AACtC,OAAK,QAAQ,GAAG,SAAS,UAAkB;AACzC,qBAAkB,MAAM,SAAS,QAAQ;AACzC,WAAQ,QAAS,UAAU,MAAM;IACjC;AACF,OAAK,QAAQ,GAAG,SAAS,UAAkB;AACzC,qBAAkB,MAAM,SAAS,QAAQ;AACzC,WAAQ,QAAS,UAAU,MAAM;IACjC;;AAGJ,OAAM;AAEN,KAAI,CAAC,QAAQ,SAAS;EACpB,MAAM,WAAW,KAAK,YAAY;AAClC,MAAI,aAAa,EACf,OAAM,IAAI,MAAM,GAAG,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,yBAAyB,WAAW;AAE/E;;AAGF,KAAI,QAAQ,QACV,QAAO;EACL,QAAQ;EACR,QAAQ;EACR,UAAU,KAAK,YAAY;EAC5B;AAQH,QAAO;EAJL,QAAQ,OAAO,KAAK,WAAW,WAAW,KAAK,SAAS;EACxD,QAAQ,OAAO,KAAK,WAAW,WAAW,KAAK,SAAS;EACxD,UAAU,KAAK,YAAY;EAEhB"}