UNPKG

@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
// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for details. "use strict"; /// <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