You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP
Socket
Socket
Sign inDemoInstall

@beemo/dependency-graph

Package Overview
Dependencies
0
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

@beemo/dependency-graph

Generate a dependency graph for a list of packages, based on their defined `dependencies` and `peerDependencies`.


Version published
Maintainers
2
Created

Readme

Source

Dependency Graph

Build Status npm version npm deps

Generate a dependency graph for a list of packages, based on their defined dependencies and peerDependencies.

Installation

yarn add @beemo/dependency-graph
// Or
npm install @beemo/dependency-graph --save

Documentation

To begin, instantiate an instance of Graph, which accepts a list of optional package.json objects as the first argument.

import Graph from '@beemo/dependency-graph';

const graph = new Graph([
  {
    name: '@beemo/core',
  },
  {
    name: '@beemo/cli',
    dependencies: {
      '@beemo/core': '^1.0.0',
    },
  },
]);

Alternatively, package.json objects can be added dynamically using Graph#addPackage or Graph#addPackages.

graph.addPackage({
  name: '@beemo/driver-jest',
  peerDependencies: {
    '@beemo/core': '^1.0.0',
    '@beemo/driver-babel': '^1.0.0',
  },
});

Once all packages have been defined, we can generate a graph using these Graph methods:

  • resolveList - Returns an array of packages in order of most depended on.
  • resolveBatchList - Like the previous, but returns the array batched based on depth.
  • resolveTree - Returns a tree of nodes based on the graph.
// List of packages
graph.resolveList().forEach((pkg) => {
  console.log(pkg.name);
});

// List of list of packages
graph.resolveBatchList().forEach((pkgs) => {
  pkgs.forEach((pkg) => {
    console.log(pkg.name);
  });
});

// Tree of nodes
graph.resolveTree().nodes.forEach((node) => {
  console.log(node.package.name);

  if (node.nodes) {
    // Dependents
  }
});

Will only resolve and return packages that have been defined. Will not return non-defined packages found in dependencies and peerDependencies.

Keywords

FAQs

Package last updated on 22 Apr 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc