mothership

0.3.0 • Public • Published

mothership build status

Helps a module find its package.json mothership.

var mothership = require('mothership')
  , path = require('path');
 
mothership(
    path.join(__dirname, 'uno', 'dos', 'tres')
  , function ismothership (pack) {
      return !!(pack.dependencies && pack.dependencies.unodep);
    }
  , function (err, res) {
      if (err) return console.error(err);
      console.log('first mothership', res.path);  // => [..]/example/uno/package.json
  }
)
 
// Synchronous
var res = mothership.sync(
    path.join(__dirname, 'uno', 'dos', 'tres')
  , function ismothership (pack) {
      return !!(pack.dependencies && pack.dependencies.unodep);
    }
)      
 
console.log('found mothership', res.path);  // => [..]/example/uno/package.json

Installation

npm install mothership

API

mothership(start, ismothership, cb)

Searches upwards from start for package.json files, asking for each if it is the mothership. If a mothership is found it calls back with that. If it reaches the top of the univers it calls back with nothing.

mothership result
  • path: full path to the package.json that is the mother ship
  • pack: the package.json object, same that was passed to ismothership
Parameters:
Name Type Description
start string

full path at which to start looking for the mothership

ismothership function

invoked with the package object, needs to return true if it is the mothership

cb function

called back with either an error or full path to package.json that is the mothership

Source:

mothership::sync(start, ismothership) → {string}

Synchronous version of mothership.

Parameters:
Name Type Description
start string

full path at which to start looking for the mothership

ismothership function

invoked with the package object, needs to return true if it is the mothership

Source:
Returns:

full path to package.json that is the mothership or null if it wasn't found

Type
string

generated with docme

License

MIT

Package Sidebar

Install

npm i mothership

Weekly Downloads

27,926

Version

0.3.0

License

MIT

Last publish

Collaborators

  • thlorenz