From 30446e506c84cca05466b62b5c2282a736cc04f0 Mon Sep 17 00:00:00 2001 From: Charles Lyding Date: Sun, 11 Dec 2016 21:32:01 -0500 Subject: [PATCH 1/2] chore(deps): validate root package.json --- scripts/publish/validate_dependencies.js | 54 ++++++++++++++++++------ 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/scripts/publish/validate_dependencies.js b/scripts/publish/validate_dependencies.js index 80e22adab645..6cca41f89a9c 100644 --- a/scripts/publish/validate_dependencies.js +++ b/scripts/publish/validate_dependencies.js @@ -69,8 +69,28 @@ function listRequiredModules(source) { }); } +function reportMissingDependencies(missingDeps) { + if (missingDeps.length == 0) { + console.log(chalk.green(' no dependency missing from package.json.')); + } else { + console.log(chalk.yellow(` ${missingDeps.length} missing from package.json:`)); + missingDeps.forEach(md => console.log(` ${md}`)); + exitCode = 1; + } +} + +function reportExcessiveDependencies(overDeps) { + if (overDeps.length == 0) { + console.log(chalk.green(' no excessive dependencies in package.json.')); + } else { + console.log(chalk.yellow(` ${overDeps.length} excessive dependencies in package.json:`)); + overDeps.forEach(md => console.log(` ${md}`)); + exitCode = 1; + } +} let exitCode = 0; +const overallDeps = []; for (const packageName of Object.keys(packages)) { console.log(chalk.green(`Reading dependencies of "${packageName}".`)); @@ -92,6 +112,7 @@ for (const packageName of Object.keys(packages)) { const dependencies = Object.keys(importMap) // Filter out the node packages that should not be depended on. .filter(x => NODE_PACKAGES.indexOf(x) == -1); + overallDeps.push(...dependencies); console.log(chalk.green(` found ${dependencies.length} dependencies...`)); const packageJson = JSON.parse(fs.readFileSync(packages[packageName].packageJson, 'utf8')); @@ -101,25 +122,30 @@ for (const packageName of Object.keys(packages)) { .concat(Object.keys(packageJson['peerDependencies'] || {})); const missingDeps = dependencies.filter(d => allDeps.indexOf(d) == -1); - if (missingDeps.length == 0) { - console.log(chalk.green(' no dependency missing from package.json.')); - } else { - console.log(chalk.yellow(` ${missingDeps.length} missing from package.json:`)); - missingDeps.forEach(md => console.log(` ${md}`)); - exitCode = 1; - } + reportMissingDependencies(missingDeps); const overDeps = allDeps.filter(d => dependencies.indexOf(d) == -1) .filter(x => ANGULAR_PACKAGES.indexOf(x) == -1); - if (overDeps.length == 0) { - console.log(chalk.green(' no excessive dependencies in package.json.')); - } else { - console.log(chalk.yellow(` ${overDeps.length} excessive dependencies in package.json:`)); - overDeps.forEach(md => console.log(` ${md}`)); - exitCode = 1; - } + reportExcessiveDependencies(overDeps); console.log(''); } +console.log(chalk.green('Validating root package. [devDependencies ignored]')); +const rootPackagePath = path.join(__dirname, '../../package.json'); +const rootPackageJson = JSON.parse(fs.readFileSync(rootPackagePath, 'utf8')); +// devDependencies are ignored +const allRootDeps = [] + .concat(Object.keys(rootPackageJson['dependencies'] || {})) + .concat(Object.keys(rootPackageJson['peerDependencies'] || {})); + +const internalPackages = Object.keys(packages); +const missingRootDeps = overallDeps.filter(d => allRootDeps.indexOf(d) == -1) + .filter(d => internalPackages.indexOf(d) == -1); +reportMissingDependencies(missingRootDeps); + +const overRootDeps = allRootDeps.filter(d => overallDeps.indexOf(d) == -1) + .filter(x => ANGULAR_PACKAGES.indexOf(x) == -1); +reportExcessiveDependencies(overRootDeps); + process.exit(exitCode); From 64eada85db061c2e0d4454e5c42b8bdaf2029365 Mon Sep 17 00:00:00 2001 From: Charles Lyding Date: Sun, 11 Dec 2016 21:32:13 -0500 Subject: [PATCH 2/2] fix validation errors --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d79dd5e20593..f63207cd1da4 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,6 @@ "@angular/compiler-cli": "2.2.3", "@angular/core": "2.2.3", "@angular/tsc-wrapped": "0.4.0", - "angular2-template-loader": "^0.5.0", "async": "^2.1.4", "autoprefixer": "^6.5.3", "chalk": "^1.1.3", @@ -88,7 +87,6 @@ "node-modules-path": "^1.0.0", "node-sass": "^3.10.1", "nopt": "^3.0.1", - "npm-run-all": "^3.0.0", "offline-plugin": "^3.4.1", "opn": "4.0.1", "ora": "^0.2.0", @@ -103,6 +101,7 @@ "resolve": "^1.1.7", "rimraf": "^2.5.3", "rsvp": "^3.0.17", + "rxjs": "5.0.0-beta.12", "sass-loader": "^4.0.1", "script-loader": "^0.7.0", "semver": "^5.1.0", @@ -162,6 +161,7 @@ "mocha": "^2.4.5", "mock-fs": "3.10.0", "npm-run": "^4.1.0", + "npm-run-all": "^3.0.0", "object-assign": "^4.0.1", "request": "^2.74.0", "resolve-bin": "^0.4.0",