Name Last Update
..
test Loading commit data...
.editorconfig Loading commit data...
.jshintrc Loading commit data...
.npmignore Loading commit data...
.travis.yml Loading commit data...
LICENSE Loading commit data...
README.md Loading commit data...
index.js Loading commit data...
package.json Loading commit data...

README.md

endpoint-parser Build Status

Little module that helps with endpoints parsing.

API

.decompose(endpoint)

Decomposes a endpoint into name, source and target.

var endpointParser = require('bower-endpoint-parser');

endpointParser.decompose('jquery#~2.0.0');
// { name: '', source: 'jquery', target: '~2.0.0' }

endpointParser.decompose('backbone=backbone-amd#~1.0.0');
// { name: 'backbone', source: 'backbone-amd', target: '~1.0.0' }

endpointParser.decompose('http://twitter.github.io/bootstrap/assets/bootstrap.zip');
// { name: '', source: 'http://twitter.github.io/bootstrap/assets/bootstrap', target: '*' }

endpointParser.decompose('bootstrap=http://twitter.github.io/bootstrap/assets/bootstrap.zip');
// { name: 'bootstrap', source: 'http://twitter.github.io/bootstrap/assets/bootstrap', target: '*' }

.compose(decEndpoint)

Inverse of decompose().
Takes a decomposed endpoint and composes it back into a string.

var endpointParser = require('bower-endpoint-parser');

endpointParser.compose({ name: '', source: 'jquery', target: '~2.0.0' });
// jquery#~2.0.0

endpointParser.compose({ name: 'backbone', source: 'backbone-amd', target: '~1.0.0' });
// backbone=backbone-amd#~1.0.0

endpointParser.compose({ name: '', source: 'http://twitter.github.io/bootstrap/assets/bootstrap', target: '*' });
// http://twitter.github.io/bootstrap/assets/bootstrap.zip

endpointParser.compose({ name: 'bootstrap', source: 'http://twitter.github.io/bootstrap/assets/bootstrap', target: '*' });
// bootstrap=http://twitter.github.io/bootstrap/assets/bootstrap.zip

.json2decomposed(key, value)

Similar to decompose() but specially designed to be used when parsing bower.json dependencies. For instance, in a bower.json like this:

{
    "name": "foo",
    "version": "0.1.0",
    "dependencies": {
        "jquery": "~1.9.1",
        "backbone": "backbone-amd#~1.0.0",
        "bootstrap": "http://twitter.github.io/bootstrap/assets/bootstrap"
    }
}

You would call json2decomposed like so:

endpointParser.json2decomposed('jquery', '~1.9.1');
// { name: 'jquery', source: 'jquery', target: '~1.9.1' }

endpointParser.json2decomposed('backbone', 'backbone-amd#~1.0.0');
// { name: 'backbone', source: 'backbone-amd', target: '~1.0.0' }

endpointParser.json2decomposed('bootstrap', 'http://twitter.github.io/bootstrap/assets/bootstrap');
// { name: 'bootstrap', source: 'http://twitter.github.io/bootstrap/assets/bootstrap', target: '*' }

.decomposed2json(decEndpoint)

Inverse of json2decomposed().
Takes a decomposed endpoint and composes it to be saved to bower.json.

var endpointParser = require('bower-endpoint-parser');

endpointParser.decomposed2json({ name: 'jquery', source: 'jquery', target: '~2.0.0' });
// { jquery: '~2.0.0' }

endpointParser.decomposed2json({ name: 'backbone', source: 'backbone-amd', target: '~1.0.0' });
// { backbone: 'backbone-amd#~2.0.0' }

endpointParser.decomposed2json({ name: 'bootstrap', source: 'http://twitter.github.io/bootstrap/assets/bootstrap', target: '*' });
// { bootstrap: 'http://twitter.github.io/bootstrap/assets/bootstrap' }

This function throws an exception if the name from the decomposed endpoint is empty.

License

Released under the MIT License.