yarn-run-all
Version:
A CLI tool to run multiple npm-scripts in parallel or sequential.
67 lines (60 loc) • 2.35 kB
JavaScript
/**
* @author Toru Nagashima
* @copyright 2016 Toru Nagashima. All rights reserved.
* See LICENSE file in root directory for full license.
*/
"use strict";
//------------------------------------------------------------------------------
// Requirements
//------------------------------------------------------------------------------
var Promise = require("pinkie-promise");
var runAll = require("../../lib");
var parseCLIArgs = require("../common/parse-cli-args");
//------------------------------------------------------------------------------
// Public Interface
//------------------------------------------------------------------------------
/**
* Parses arguments, then run specified npm-scripts.
*
* @param {string[]} args - Arguments to parse.
* @param {stream.Writable} stdout - A writable stream to print logs.
* @param {stream.Writable} stderr - A writable stream to print errors.
* @returns {Promise} A promise which comes to be fulfilled when all npm-scripts are completed.
* @private
*/
module.exports = function npmRunAll(args, stdout, stderr) {
try {
var stdin = process.stdin;
var _parseCLIArgs = parseCLIArgs(args, { parallel: false }, { singleMode: true }),
_parseCLIArgs$lastGro = _parseCLIArgs.lastGroup,
patterns = _parseCLIArgs$lastGro.patterns,
parallel = _parseCLIArgs$lastGro.parallel,
continueOnError = _parseCLIArgs.continueOnError,
config = _parseCLIArgs.config,
packageConfig = _parseCLIArgs.packageConfig,
printLabel = _parseCLIArgs.printLabel,
printName = _parseCLIArgs.printName,
silent = _parseCLIArgs.silent,
rest = _parseCLIArgs.rest,
yarn = _parseCLIArgs.yarn;
if (patterns.length === 0) {
return Promise.resolve(null);
}
return runAll(patterns, {
stdout: stdout,
stderr: stderr,
stdin: stdin,
parallel: parallel,
continueOnError: continueOnError,
printLabel: printLabel,
printName: printName,
config: config,
packageConfig: packageConfig,
silent: silent,
arguments: rest,
yarn: yarn
});
} catch (err) {
return Promise.reject(err);
}
};