Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/thlorenz/mothership

Helps a module find its package.json mothership.
https://github.com/thlorenz/mothership

Last synced: 15 days ago
JSON representation

Helps a module find its package.json mothership.

Awesome Lists containing this project

README

        

# mothership [![build status](https://secure.travis-ci.org/thlorenz/mothership.png)](http://travis-ci.org/thlorenz/mothership)

Helps a module find its `package.json` mothership.

```js
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](https://github.com/thlorenz/docme)*

## License

MIT