1 | const logger = require('../logger');
|
2 | const taskify = require('../cli-task');
|
3 | const runPackage = require('../run-package');
|
4 |
|
5 | function publish(packages = [], args = []) {
|
6 |
|
7 | const filteredPackages = packages.filter(pkg => !pkg.private);
|
8 |
|
9 | logger.debug(`Found ${filteredPackages.length} packages to publish`);
|
10 |
|
11 |
|
12 | return filteredPackages.map(pkg => {
|
13 | const apply = () =>
|
14 | runPackage('npm', ['publish', ...args], pkg.location);
|
15 | return { pkg, apply };
|
16 | });
|
17 | }
|
18 |
|
19 | exports.task = publish;
|
20 |
|
21 | exports.register = program => {
|
22 | program
|
23 | .command('publish [args...]')
|
24 | .description('Runs npm publish in the scope of each public package')
|
25 | .action(taskify(publish));
|
26 | };
|