UNPKG

2.54 kBJavaScriptView Raw
1var check = require('check-types');
2var path = require('path');
3var print = require('./print-modules-table');
4var nameVersionParser = require('./moduleName');
5var getKnownDependencies = require('./get-known-dependencies');
6require('console.table');
7var _ = require('lodash');
8
9function printCurrentModules(infos) {
10 check.verify.array(infos, 'expected array of modules');
11
12 var modules = [];
13 infos.forEach(function (nameVersionArray) {
14 check.verify.array(nameVersionArray, 'expected name version in ' + modules);
15 modules.push({
16 name: nameVersionArray[0],
17 version: nameVersionArray[1]
18 });
19 });
20 print(modules);
21}
22
23function printTable(options, nameVersionPairs) {
24 if (options.tldr) {
25 return;
26 }
27
28 var allowedType = options.type || 'all';
29 var title = 'module\'s current dependencies:';
30 var filtered = allowedType === 'all' ?
31 nameVersionPairs :
32 _.filter(nameVersionPairs, { type: allowedType });
33
34 console.table(title, _.map(filtered, function (nameVersion) {
35 return {
36 module: nameVersion.name,
37 version: nameVersion.version,
38 type: nameVersion.type
39 };
40 }));
41}
42
43function getDependenciesToCheck(options, moduleNames) {
44 check.verify.object(options, 'missing options');
45
46 if (moduleNames) {
47 console.log('returning dependencies for');
48 console.dir(moduleNames);
49 if (check.string(moduleNames)) {
50 moduleNames = [moduleNames];
51 }
52
53 if (check.object(moduleNames)) {
54 var names = Object.keys(moduleNames);
55 moduleNames = names;
56 }
57
58 check.verify.array(moduleNames, 'expected module names array ' +
59 JSON.stringify(moduleNames));
60 }
61 var workingDirectory = process.cwd();
62
63 var packageFilename = path.join(workingDirectory, 'package.json');
64 var nameVersionPairs = getKnownDependencies(packageFilename);
65
66 printTable(options, nameVersionPairs);
67
68 var toCheck = nameVersionPairs;
69 if (moduleNames) {
70 toCheck = nameVersionPairs.filter(function (nameVersion) {
71 var name = nameVersion.name;
72 return moduleNames.some(function (aModule) {
73 var moduleName = nameVersionParser(aModule).name;
74 return name === moduleName;
75 });
76 });
77 if (!options.tldr) {
78 console.log('only checking\n', toCheck);
79 }
80 }
81 return toCheck;
82}
83
84module.exports = getDependenciesToCheck;