mirror of
https://github.com/bower/bower.git
synced 2026-04-24 03:00:19 -04:00
Switch endpoint parser to its own module.
This commit is contained in:
@@ -6,10 +6,10 @@ var mkdirp = require('mkdirp');
|
||||
var rimraf = require('rimraf');
|
||||
var fs = require('graceful-fs');
|
||||
var promptly = require('promptly');
|
||||
var endpointParser = require('bower-endpoint-parser');
|
||||
var PackageRepository = require('./PackageRepository');
|
||||
var copy = require('../util/copy');
|
||||
var createError = require('../util/createError');
|
||||
var endpointParser = require('../util/endpointParser');
|
||||
|
||||
function Manager(config, logger) {
|
||||
this._config = config;
|
||||
|
||||
@@ -7,12 +7,12 @@ var mout = require('mout');
|
||||
var rimraf = require('rimraf');
|
||||
var promptly = require('promptly');
|
||||
var bowerJson = require('bower-json');
|
||||
var endpointParser = require('bower-endpoint-parser');
|
||||
var Manager = require('./Manager');
|
||||
var Logger = require('./Logger');
|
||||
var defaultConfig = require('../config');
|
||||
var md5 = require('../util/md5');
|
||||
var createError = require('../util/createError');
|
||||
var endpointParser = require('../util/endpointParser');
|
||||
|
||||
function Project(config, logger) {
|
||||
// This is the only architecture component that ensures defaults
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
var createError = require('./createError');
|
||||
|
||||
function decompose(endpoint) {
|
||||
var regExp = /^(?:([\w\-]|(?:[\w\.\-]+[\w\-])?)=)?([^\|#]+)(?:#(.*))?$/;
|
||||
var matches = endpoint.match(regExp);
|
||||
var target;
|
||||
|
||||
if (!matches) {
|
||||
throw createError('Invalid endpoint: ' + endpoint, 'EINVEND');
|
||||
}
|
||||
|
||||
target = matches[3];
|
||||
|
||||
return {
|
||||
name: matches[1] || '',
|
||||
source: matches[2],
|
||||
target: !target || target === 'latest' ? '*' : target
|
||||
};
|
||||
}
|
||||
|
||||
function compose(decEndpoint) {
|
||||
var composed = '';
|
||||
|
||||
if (decEndpoint.name) {
|
||||
composed += decEndpoint.name + '=';
|
||||
}
|
||||
|
||||
composed += decEndpoint.source;
|
||||
|
||||
if (decEndpoint.target) {
|
||||
composed += '#' + decEndpoint.target;
|
||||
}
|
||||
|
||||
return composed;
|
||||
}
|
||||
|
||||
function json2decomposed(key, value) {
|
||||
var endpoint = key + '=';
|
||||
var split = value.split('#');
|
||||
|
||||
// If # was found, the source was specified
|
||||
if (split.length > 1) {
|
||||
endpoint += split[0] + '#' + split[1];
|
||||
// If value has a /, it's probably a source
|
||||
} else if (value.indexOf('/') !== -1) {
|
||||
endpoint += value + '#*';
|
||||
// Otherwise use the key as the source
|
||||
} else {
|
||||
endpoint += key + '#' + split[0];
|
||||
}
|
||||
|
||||
return decompose(endpoint);
|
||||
}
|
||||
|
||||
function decomposed2json(decEndpoint) {
|
||||
var key = decEndpoint.name;
|
||||
var value = '';
|
||||
var ret = {};
|
||||
|
||||
if (decEndpoint.source !== decEndpoint.name) {
|
||||
value += decEndpoint.source + '#';
|
||||
}
|
||||
|
||||
value += decEndpoint.target;
|
||||
|
||||
ret[key] = value;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
module.exports.decompose = decompose;
|
||||
module.exports.compose = compose;
|
||||
module.exports.json2decomposed = json2decomposed;
|
||||
module.exports.decomposed2json = decomposed2json;
|
||||
@@ -22,6 +22,7 @@
|
||||
"archy": "0.0.2",
|
||||
"abbrev": "~1.0.4",
|
||||
"bower-config": "~0.1.0",
|
||||
"bower-endpoint-parser": "~0.1.0",
|
||||
"bower-json": "~0.1.0",
|
||||
"bower-registry-client": "~0.1.0",
|
||||
"chmodr": "~0.1.0",
|
||||
|
||||
Reference in New Issue
Block a user