mobile-cli-lib
Version:
common lib used by different CLI
44 lines (43 loc) • 2.33 kB
JavaScript
;
var npm_plugins_source_1 = require("./npm-plugins-source");
var npm_registry_plugins_source_1 = require("./npm-registry-plugins-source");
var npmjs_plugins_source_1 = require("./npmjs-plugins-source");
var NpmPluginsService = (function () {
function NpmPluginsService($injector) {
this.$injector = $injector;
}
NpmPluginsService.prototype.search = function (projectDir, keywords, modifySearchQuery) {
var _this = this;
return (function () {
var query = modifySearchQuery ? modifySearchQuery(keywords) : keywords;
var pluginsSource = _this.searchCore(npmjs_plugins_source_1.NpmjsPluginsSource, projectDir, keywords).wait() ||
_this.searchCore(npm_registry_plugins_source_1.NpmRegistryPluginsSource, projectDir, keywords).wait() ||
_this.preparePluginsSource(npm_plugins_source_1.NpmPluginsSource, projectDir, query).wait();
return pluginsSource;
}).future()();
};
NpmPluginsService.prototype.optimizedSearch = function (projectDir, keywords, modifySearchQuery) {
var _this = this;
return (function () {
return _this.searchCore(npm_registry_plugins_source_1.NpmRegistryPluginsSource, projectDir, keywords).wait() || _this.search(projectDir, keywords, modifySearchQuery).wait();
}).future()();
};
NpmPluginsService.prototype.searchCore = function (pluginsSourceConstructor, projectDir, keywords) {
var _this = this;
return (function () {
var npmPluginsSource = _this.preparePluginsSource(pluginsSourceConstructor, projectDir, keywords).wait();
return npmPluginsSource.hasPlugins() ? npmPluginsSource : null;
}).future()();
};
NpmPluginsService.prototype.preparePluginsSource = function (pluginsSourceConstructor, projectDir, keywords) {
var _this = this;
return (function () {
var pluginsSource = _this.$injector.resolve(pluginsSourceConstructor, { projectDir: projectDir, keywords: keywords });
pluginsSource.initialize(projectDir, keywords).wait();
return pluginsSource;
}).future()();
};
return NpmPluginsService;
}());
exports.NpmPluginsService = NpmPluginsService;
$injector.register("npmPluginsService", NpmPluginsService);