-
Notifications
You must be signed in to change notification settings - Fork 237
/
Copy pathindex.js
44 lines (34 loc) · 1.52 KB
/
index.js
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
'use strict';
const co = require('co');
const merge = require('merge-options');
const ora = require('ora');
const getUnusedPackages = require('./get-unused-packages');
const removeUnusedPackages = require('./remove-unused-packages');
const createPackageSummary = require('./create-package-summary');
module.exports = function (currentState) {
return co(function *() {
yield getUnusedPackages(currentState);
yield removeUnusedPackages(currentState);
const spinner = ora(`Checking npm registries for updated packages.`);
spinner.enabled = spinner.enabled && currentState.get('spinner');
spinner.start();
const cwdPackageJson = currentState.get('cwdPackageJson');
function dependencies(pkg) {
if (currentState.get('global')) {
return currentState.get('globalPackages');
}
if (currentState.get('ignoreDev')) {
return pkg.dependencies;
}
return merge(pkg.dependencies, pkg.devDependencies);
}
const allDependencies = dependencies(cwdPackageJson);
const allDependenciesIncludingMissing = Object.keys(merge(allDependencies, currentState.get('missingFromPackageJson')));
const arrayOfPackageInfo = yield allDependenciesIncludingMissing
.map(moduleName => createPackageSummary(moduleName, currentState))
.filter(Boolean);
currentState.set('packages', arrayOfPackageInfo);
spinner.stop();
return currentState;
});
};