Indexed resolvers.

This commit is contained in:
André Cruz
2013-05-24 23:20:54 +01:00
parent 9f2b02d98e
commit f7c3b7c664
2 changed files with 13 additions and 10 deletions

View File

@@ -2,10 +2,7 @@ var Q = require('q');
var fs = require('fs');
var path = require('path');
var mout = require('mout');
var GitFsResolver = require('./resolvers/GitFsResolver');
var GitRemoteResolver = require('./resolvers/GitRemoteResolver');
var FsResolver = require('./resolvers/FsResolver');
var UrlResolver = require('./resolvers/UrlResolver');
var resolvers = require('./resolvers');
var defaultConfig = require('../config');
var createError = require('../util/createError');
@@ -29,14 +26,14 @@ function createResolver(decEndpoint, options) {
if (/^git(\+(ssh|https?))?:\/\//i.test(source) || /\.git\/?$/i.test(source)) {
source = source.replace(/^git\+/, '');
return Q.fcall(function () {
return new GitRemoteResolver(source, resOptions);
return new resolvers.GitRemoteResolver(source, resOptions);
});
}
// URL case
if (/^https?:\/\//i.exec(source)) {
return Q.fcall(function () {
return new UrlResolver(source, resOptions);
return new resolvers.UrlResolver(source, resOptions);
});
}
@@ -52,7 +49,7 @@ function createResolver(decEndpoint, options) {
.then(function (stats) {
if (stats.isDirectory()) {
return function () {
return Q.resolve(new GitFsResolver(resolvedPath, resOptions));
return Q.resolve(new resolvers.GitFsResolver(resolvedPath, resOptions));
};
}
@@ -63,7 +60,7 @@ function createResolver(decEndpoint, options) {
return Q.nfcall(fs.stat, source)
.then(function () {
return function () {
return Q.resolve(new FsResolver(resolvedPath, resOptions));
return Q.resolve(new resolvers.FsResolver(resolvedPath, resOptions));
};
});
})
@@ -79,7 +76,7 @@ function createResolver(decEndpoint, options) {
});
return function () {
return Q.resolve(new GitRemoteResolver(source, resOptions));
return Q.resolve(new resolvers.GitRemoteResolver(source, resOptions));
};
}
@@ -99,7 +96,7 @@ function createResolver(decEndpoint, options) {
decEndpoint.registryName = source;
// TODO: Handle entry.type.. for now it's only 'alias'
// When we got published packages, this needs to be adjusted
return new GitRemoteResolver(entry.url, resOptions);
return new resolvers.GitRemoteResolver(entry.url, resOptions);
});
};
})

View File

@@ -0,0 +1,6 @@
module.exports = {
FsResolver: require('./FsResolver'),
GitFsResolver: require('./GitFsResolver'),
GitRemoteResolver: require('./GitRemoteResolver'),
UrlResolver: require('./UrlResolver')
};