New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@beemo/dependency-graph

Package Overview
Dependencies
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

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`.

  • 1.1.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
947
increased by16.63%
Maintainers
2
Weekly downloads
 
Created
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

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc