UNPKG

875 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 NODE_ENV: null // Passing NODE_ENV through causes strange issues with yarn
15
16 })
17 }, opts));
18 cp.stdout.setEncoding('utf8').on('data', d => logger.writeRaw(d));
19 cp.stderr.setEncoding('utf8').on('data', d => logger.writeRaw(d));
20 return new Promise((resolve, reject) => {
21 cp.on('error', reject);
22 cp.on('close', function (code) {
23 if (code !== 0) {
24 return reject(new Error(cmd + ' failed.'));
25 }
26
27 logger.clear();
28 return resolve();
29 });
30 });
31}
32
33module.exports = pipeSpawn;
\No newline at end of file