43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const angularRoot = path.resolve('./node_modules/@angular');
|
|
const angularModules = fs.readdirSync(angularRoot).map(function (name) {
|
|
const content = fs.readFileSync(path.join(angularRoot, name, 'package.json'), 'utf-8').toString();
|
|
return JSON.parse(content);
|
|
}).reduce(function (acc, packageJson) {
|
|
acc[packageJson.name] = packageJson;
|
|
return acc;
|
|
}, Object.create(null));
|
|
|
|
var error = false;
|
|
Object.keys(angularModules).forEach(function (name) {
|
|
packageJson = angularModules[name];
|
|
|
|
const ngUpdate = packageJson['ng-update'];
|
|
if (!ngUpdate) {
|
|
console.error('Package ' + JSON.stringify(name) + ' does not have an "ng-update" key.');
|
|
error = true;
|
|
return;
|
|
}
|
|
|
|
const packageGroup = ngUpdate['packageGroup'];
|
|
if (!packageGroup) {
|
|
console.error('Package ' + JSON.stringify(name) + ' does not have a "packageGroup" key.');
|
|
error = true;
|
|
return;
|
|
}
|
|
|
|
// Verify that every packageGroup is represented in the list of modules.
|
|
Object.keys(angularModules).forEach(function (groupEntry) {
|
|
if (packageGroup.indexOf(groupEntry) == -1) {
|
|
console.error('Package ' + JSON.stringify(name) + ' is missing ' + JSON.stringify(groupEntry)
|
|
+ ' as a packageGroup entry.');
|
|
error = true;
|
|
return;
|
|
}
|
|
});
|
|
});
|
|
|
|
process.exit(error ? 1 : 0);
|