@hkvstore/taco-cli
Version:
taco-cli is a command-line interface for rapid Apache Cordova development (forked from Microsoft taco-cli)
113 lines (111 loc) • 4.32 kB
JavaScript
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for details.
;
/// <reference path="../../../typings/node.d.ts" />
/// <reference path="../../../typings/Q.d.ts" />
/// <reference path="../../../typings/tacoJsonMetadata.d.ts" />
/// <reference path="../../../typings/tacoJsonEditParams.d.ts" />
var Q = require("q");
var path = require("path");
var tacoUtility = require("taco-utils");
var TacoPackageLoader = tacoUtility.TacoPackageLoader;
var ProjectHelper = tacoUtility.ProjectHelper;
/**
* A helper class with methods to query the project root, project info like CLI/kit version etc.
*/
var KitHelper = (function () {
function KitHelper() {
}
KitHelper.getTemplatesForKit = function (kitId) {
return KitHelper.acquireKitPackage()
.then(function (tacoKits) {
return tacoKits.kitHelper.getTemplatesForKit(kitId);
});
};
KitHelper.getKitMetadata = function () {
return KitHelper.acquireKitPackage()
.then(function (tacoKits) {
return tacoKits.kitHelper.getKitMetadata();
});
};
KitHelper.getKitInfo = function (kitId) {
return KitHelper.acquireKitPackage()
.then(function (tacoKits) {
return tacoKits.kitHelper.getKitInfo(kitId);
});
};
KitHelper.getDefaultKit = function () {
return KitHelper.acquireKitPackage()
.then(function (tacoKits) {
return tacoKits.kitHelper.getDefaultKit();
});
};
KitHelper.getAllTemplates = function () {
return KitHelper.acquireKitPackage()
.then(function (tacoKits) {
return tacoKits.kitHelper.getAllTemplates();
});
};
KitHelper.getPlatformOverridesForKit = function (kitId) {
return KitHelper.acquireKitPackage()
.then(function (tacoKits) {
return tacoKits.kitHelper.getPlatformOverridesForKit(kitId);
});
};
KitHelper.getPluginOverridesForKit = function (kitId) {
return KitHelper.acquireKitPackage()
.then(function (tacoKits) {
return tacoKits.kitHelper.getPluginOverridesForKit(kitId);
});
};
KitHelper.getTemplateOverrideInfo = function (kitId, templateId) {
return KitHelper.acquireKitPackage()
.then(function (tacoKits) {
return tacoKits.kitHelper.getTemplateOverrideInfo(kitId, templateId);
});
};
KitHelper.getValidCordovaCli = function (kitId) {
return KitHelper.acquireKitPackage()
.then(function (tacoKits) {
return tacoKits.kitHelper.getValidCordovaCli(kitId);
});
};
KitHelper.editTacoJsonFile = function (editParams) {
var cordovaCliVersion;
return Q({})
.then(function () {
if (editParams.isKitProject) {
return KitHelper.parseKitId(editParams.version)
.then(function (kitId) {
editParams.version = kitId;
return KitHelper.getValidCordovaCli(kitId);
}).then(function (cordovaCli) {
cordovaCliVersion = cordovaCli;
});
}
;
})
.then(function () {
return ProjectHelper.editTacoJsonFile(editParams, cordovaCliVersion);
});
};
KitHelper.acquireKitPackage = function () {
if (!KitHelper.kitPackagePromise) {
KitHelper.kitPackagePromise = TacoPackageLoader.lazyTacoRequire(KitHelper.TACO_KITS_NPM_PACKAGE_NAME, KitHelper.dynamicDependenciesLocation, tacoUtility.InstallLogLevel.error);
}
return KitHelper.kitPackagePromise;
};
KitHelper.parseKitId = function (versionValue) {
if (versionValue) {
return Q.resolve(versionValue);
}
return KitHelper.getDefaultKit();
};
// Keeping the cached promise acessible to tests
KitHelper.kitPackagePromise = null;
KitHelper.dynamicDependenciesLocation = path.join(__dirname, "../../dynamicDependencies.json");
KitHelper.TACO_KITS_NPM_PACKAGE_NAME = "taco-kits";
return KitHelper;
}());
module.exports = KitHelper;
//# sourceMappingURL=kitHelper.js.map