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