package-tree.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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;