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