1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | function readPackageTree(path) {
|
4 | const rpt = require('read-package-tree');
|
5 | return new Promise((resolve, reject) => {
|
6 | rpt(path, (e, data) => {
|
7 | if (e) {
|
8 | reject(e);
|
9 | }
|
10 | else {
|
11 | resolve(data);
|
12 | }
|
13 | });
|
14 | });
|
15 | }
|
16 | exports.readPackageTree = readPackageTree;
|
17 | function findNodeDependencies(node) {
|
18 | const rawDeps = {
|
19 | ...node.package.dependencies,
|
20 | ...node.package.devDependencies,
|
21 | ...node.package.peerDependencies,
|
22 | ...node.package.optionalDependencies,
|
23 | };
|
24 | return Object.entries(rawDeps).reduce((deps, [name, version]) => {
|
25 | let dependencyNode;
|
26 | let parent = node;
|
27 | while (!dependencyNode && parent) {
|
28 | dependencyNode = parent.children.find(child => child.name === name);
|
29 | parent = parent.parent;
|
30 | }
|
31 | deps[name] = {
|
32 | node: dependencyNode,
|
33 | version,
|
34 | };
|
35 | return deps;
|
36 | }, Object.create(null));
|
37 | }
|
38 | exports.findNodeDependencies = findNodeDependencies;
|