Switch endpoint parser to its own module.

This commit is contained in:
André Cruz
2013-07-16 09:17:50 +01:00
parent 6daf891c5c
commit ec33766803
4 changed files with 3 additions and 76 deletions

View File

@@ -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;

View File

@@ -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

View File

@@ -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;

View File

@@ -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",