1 | var check = require('check-types');
|
2 | var _ = require('lodash');
|
3 | var registry = require('./registry');
|
4 | var cleanVersions = registry.cleanVersions;
|
5 |
|
6 | function format(label, deps) {
|
7 | check.verify.unemptyString(label, 'missing label');
|
8 | check.verify.object(deps, 'expected deps');
|
9 | return Object.keys(deps).map(function (name) {
|
10 | return {
|
11 | type: label,
|
12 | name: name,
|
13 | version: deps[name]
|
14 | };
|
15 | });
|
16 | }
|
17 |
|
18 | function getKnownDependencies(packageFilename) {
|
19 | check.verify.string(packageFilename, 'missing package filename string');
|
20 |
|
21 | var workingPackage = require(packageFilename);
|
22 |
|
23 | var dependencies = workingPackage.dependencies || {};
|
24 | var devDependencies = workingPackage.devDependencies || {};
|
25 | var peerDependencies = workingPackage.peerDependencies || {};
|
26 |
|
27 | var all = [].concat(
|
28 | format('prod', dependencies),
|
29 | format('dev', devDependencies),
|
30 | format('peer', peerDependencies)
|
31 | );
|
32 |
|
33 | var cleaned = cleanVersions(all);
|
34 |
|
35 | return cleaned;
|
36 | }
|
37 |
|
38 | module.exports = getKnownDependencies;
|