mirror of
https://github.com/bower/bower.git
synced 2026-01-22 20:58:08 -05:00
35 lines
769 B
JavaScript
35 lines
769 B
JavaScript
var createError = require('./createError');
|
|
|
|
function decompose(endpoint) {
|
|
var regExp = /^(?:([\w\-]|(?:[\w\.\-]+[\w\-])?)\|)?([^\|#]+)(?:#(.*))?$/;
|
|
var matches = endpoint.match(regExp);
|
|
|
|
if (!matches) {
|
|
throw createError('Invalid endpoint: "' + endpoint + '"', 'EINVEND');
|
|
}
|
|
|
|
return {
|
|
name: matches[1] || '',
|
|
source: matches[2],
|
|
target: matches[3] || '*'
|
|
};
|
|
}
|
|
|
|
function compose(decEndpoint) {
|
|
var composed = '';
|
|
|
|
if (decEndpoint.name) {
|
|
composed += decEndpoint.name + '|';
|
|
}
|
|
|
|
composed += decEndpoint.source;
|
|
|
|
if (decEndpoint.target) {
|
|
composed += '#' + decEndpoint.target;
|
|
}
|
|
|
|
return composed;
|
|
}
|
|
|
|
module.exports.decompose = decompose;
|
|
module.exports.compose = compose; |