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);
 |