30 lines
657 B
JavaScript
30 lines
657 B
JavaScript
const execa = require(`execa`)
|
|
|
|
const defaultSpawnArgs = {
|
|
cwd: process.cwd(),
|
|
stdio: `inherit`,
|
|
}
|
|
|
|
exports.setDefaultSpawnStdio = stdio => {
|
|
defaultSpawnArgs.stdio = stdio
|
|
}
|
|
|
|
exports.promisifiedSpawn = async ([cmd, args = [], spawnArgs = {}]) => {
|
|
const spawnOptions = {
|
|
...defaultSpawnArgs,
|
|
...spawnArgs,
|
|
}
|
|
try {
|
|
return await execa(cmd, args, spawnOptions)
|
|
} catch (e) {
|
|
if (spawnOptions.stdio === `ignore`) {
|
|
console.log(
|
|
`\nCommand "${cmd} ${args.join(
|
|
` `
|
|
)}" failed.\nTo see details of failed command, rerun "medusa-dev" without "--quiet" or "-q" switch\n`
|
|
)
|
|
}
|
|
throw e
|
|
}
|
|
}
|