-
Notifications
You must be signed in to change notification settings - Fork 12k
/
Copy pathpackages.ts
50 lines (44 loc) · 1.61 KB
/
packages.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
// tslint:disable:no-implicit-dependencies
import { logging } from '@angular-devkit/core';
import * as colors from 'ansi-colors';
const { packages, loadRootPackageJson, stableToExperimentalVersion } = require('../lib/packages');
export default function(args: { json: boolean, version: boolean, releaseCheck: boolean }, logger: logging.Logger) {
if (args.releaseCheck) {
const {version: root} = loadRootPackageJson();
const experimental = stableToExperimentalVersion(root);
logger.info(`The expected version for the release is ${colors.bold(root)} (${experimental}) based on root package.json.`);
logger.info(
Object.keys(packages)
.filter(name => !packages[name].private)
.map(name => {
let result = colors.red(colors.symbols.cross);
const version = packages[name].version;
if ([root, experimental].includes(version)) {
result = colors.green(colors.symbols.check);
}
return ` ${result} ${name}@${packages[name].version}`;
})
.join('\n'));
} else if (args.json) {
logger.info(JSON.stringify(packages, null, 2));
} else {
logger.info(
Object.keys(packages)
.filter(name => !packages[name].private)
.map(name => {
if (args.version) {
return `${name}@${packages[name].version}`;
} else {
return name;
}
})
.join('\n'));
}
}