UNPKG

@beenotung/tslib

Version:
41 lines (40 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.exec = void 0; exports.spawn = spawn; const tslib_1 = require("tslib"); const child_process_1 = require("child_process"); const util = tslib_1.__importStar(require("util")); exports.exec = util.promisify(child_process_1.exec); function spawn(options) { let { cmd, args } = options; if (!args) { args = cmd.split(' '); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion cmd = args.shift(); } return new Promise((resolve, reject) => { const child = (0, child_process_1.spawn)(cmd, args, options.options); child.stdout.setEncoding('utf8'); child.stdout.on('data', options.on_stdout || (data => process.stdout.write(data.toString()))); child.stderr.setEncoding('utf8'); child.stderr.on('data', options.on_stderr || (data => process.stderr.write(data.toString()))); child.on('error', err => { if (options.on_error) { options.on_error(err); } else { console.error(err); process.exit(1); } }); child.on('close', code => { if (code) { reject(code); } else { resolve(code); } }); }); }