UNPKG

813 BJavaScriptView Raw
1const logger = require('../logger');
2const taskify = require('../cli-task');
3const runPackage = require('../run-package');
4
5function run(packages = [], script) {
6 // filter out packages without the requested command
7 const filteredPackages = packages.filter(({ manifest }) => {
8 return manifest.scripts && manifest.scripts[script];
9 });
10
11 logger.debug(
12 `Found ${filteredPackages.length} packages with script "${script}"`,
13 );
14
15 // create a queue of tasks to run
16 return filteredPackages.map(pkg => {
17 const apply = () => runPackage('npm', ['run', script], pkg.location);
18 return { pkg, apply };
19 });
20}
21
22exports.task = run;
23
24exports.register = program => {
25 program
26 .command('run <script>')
27 .description(
28 'Runs an npm script in each package that contains that script.',
29 )
30 .action(taskify(run));
31};