UNPKG

daizong

Version:

`package.json` script runner for ES Modules

28 lines 865 B
import { execa } from 'execa'; function escape(cmd) { return `"${cmd.replace(/(["'$`\\])/g, '\\$1')}"`; } export default async function spawn(inputCmd, inputArgs, env, logger, workingDir) { if (!inputCmd.length) { throw new Error('The argument "inputCmd" cannot be empty'); } logger?.(`[spawn-input] ${inputCmd} | ${inputArgs}`); logger?.(`[spawn-input-env] ${JSON.stringify(env)}`); let cmd = inputCmd; if (inputArgs.length) { cmd += inputArgs.map((s) => ` ${escape(s)}`).join(' '); } const mergedEnv = { ...process.env, ...env, }; logger?.(`[spawn-run] ${cmd}`); logger?.(`[spawn-run-env] ${JSON.stringify(mergedEnv)}`); await execa(cmd, { shell: true, env: mergedEnv, stdio: 'inherit', cwd: workingDir, }); } //# sourceMappingURL=spawn.js.map