UNPKG

784 BJavaScriptView Raw
1"use strict";
2
3const spawn = require('cross-spawn');
4
5const logger = require('@parcel/logger');
6
7function pipeSpawn(cmd, params, opts) {
8 const cp = spawn(cmd, params, Object.assign({
9 env: Object.assign({
10 FORCE_COLOR: logger.color,
11 npm_config_color: logger.color ? 'always' : '',
12 npm_config_progress: true
13 }, process.env)
14 }, opts));
15 cp.stdout.setEncoding('utf8').on('data', d => logger.writeRaw(d));
16 cp.stderr.setEncoding('utf8').on('data', d => logger.writeRaw(d));
17 return new Promise((resolve, reject) => {
18 cp.on('error', reject);
19 cp.on('close', function (code) {
20 if (code !== 0) {
21 return reject(new Error(cmd + ' failed.'));
22 }
23
24 logger.clear();
25 return resolve();
26 });
27 });
28}
29
30module.exports = pipeSpawn;
\No newline at end of file