Giter Club home page Giter Club logo

dependent-tree's Introduction

Dependent Tree

CLI utility which builds a dependent tree for your package to find out where it is used. The 'dependent tree' is the inverse of a package's dependency tree - it's a tree of all packages depending on a given package. This utility works on a per-organization basis : it doesn't search all of npm, just your organization.

Note* : this util uses the github API which by default only searches master branches of repositories. I currently don't have a way to modify this in any way, but I'm accepting PRs :)

Steps :

  • get an oauth token from github so dependent-tree can access the github api
  • set up your environment variables
  • clone all the package jsons for your organization (WARNING! this takes a second if you have a lot of packages)
  • update package jsons as needed
  • query dependent-tree for a given package
  • dependent-tree will output a pretty-printed tree describing all the places your package is installed

Setup :

yarn global add dependent-tree
npm install dependent-tree --global

As I mentioned above, you need to head to github and generate an oauth token for yourself : https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/ Once you've done that, configure the following settings in your .env file. The .env file lives at the root of the dependent-tree project...

DEPENDENT_TREE_ORG=my_org
DEPENDENT_TREE_OAUTH=github_personal_access_token_goes_here
LOG_LEVEL=info

... Alternately you can export these from a global config (like your .profile or .bash_profile) like :

export DEPENDENT_TREE_ORG=my_org

Usage :

dependent-tree -u

Update the dependent tree package list. You should use this command sporadically to ensure you have up to date info on each of your packages. WARNING! This step can take a second!

dependent-tree -p package-name

Build the dependent tree for a given package. This will not work if you haven't run the update command first (see below).

log levels

  • error
  • warn
  • info
  • trace

Trace has the highest amount of output, it's actually handy for the update command and will show you every request being made.

To-do :

  • make it more clear what that version number is
  • make it more clear with a circular dependency is present.
  • .env is using current working dir - pass the dir to dotenv() instead
  • update the readme - the GH pw and user name are both not required.
  • remove the allRepos.json file.

dependent-tree's People

Contributors

nameofname avatar aahill50 avatar

Watchers

 avatar

Forkers

aahill50

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.