GithubHelp home page GithubHelp logo

haroenv / dependency-db Goto Github PK

View Code? Open in Web Editor NEW

This project forked from watson/dependency-db

0.0 3.0 0.0 55 KB

A database for querying which packages depend on a specific package within a specific range

License: MIT License

JavaScript 100.00%

dependency-db's Introduction

dependency-db

A database for querying which packages depend on a specific package within a specific range.

Build status js-standard-style

Installation

npm install dependency-db --save

When upgrading from version 4, remember to purge the LevelDB index.

Usage

var memdb = require('memdb')
var DependencyDb = require('dependency-db')

var db = new DependencyDb(memdb())

// pkg should be a package.json style object
var pkg = {
  name: 'foo',
  version: '1.2.3',
  dependencies: {
    bar: '^2.3.4'
  }
}

db.store(pkg, function (err) {
  if (err) throw err

  db.query('bar', '^2.0.0', function (err, pkgs) {
    if (err) throw err

    console.log('Found %d dependents:', pkgs.length)

    pkgs.forEach(function (pkg) {
      console.log('- %s@%s', pkg.name, pkg.version)
    })
  })
})

API

var db = new DependencyDb(levelup)

Initialize the DependencyDb constructor with a levelup database instance.

db.store(pkg, callback)

Store a package in the database.

The first argument is a package.json style JavaScript object. Only the name and version properties are required. If dependencies is present, it should adhere the the regular package.json format.

The callback will be called with an optional error object as the first arguement when the package have been processed and stored correctly in the database.

var stream = db.query(name, range[, options][, callback])

Query the database for packages that depend on name within the given range.

The optional options argument can contain the following properties:

  • devDependencies - Look up dev-dependencies instead of dependencies (default: false)
  • all - Return all versions of all packages that matches the queried dependency
  • gt - Used for pagination. Only return results greater than the given dependent (format: dependent or dependent@version)
  • limit - Used for pagination. Max number of results to return (default: -1, no limit)

If provided, the callback will be called with an optional error object as the first arguement and an array of packages that match the query as the second.

Alternatively you can use the returned object-stream to stream the results:

db.query('roundround', '*').on('data', function (result) {
  console.log(result)
})

Warning: OR-queries are not supported. This means that the range argument must not contain a double pipe operator (||). If an OR-range is given an error is thrown.

License

MIT

dependency-db's People

Contributors

watson avatar

Watchers

 avatar  avatar  avatar

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.