UNPKG

@hkvstore/taco-cli

Version:

taco-cli is a command-line interface for rapid Apache Cordova development (forked from Microsoft taco-cli)

180 lines (178 loc) 7.17 kB
// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for details. /// <reference path="../../typings/tacoUtils.d.ts" /> /// <reference path="../../typings/tacoKits.d.ts" /> /// <reference path="../../typings/node.d.ts" /> /// <reference path="../../typings/dictionary.d.ts" /> "use strict"; var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var KitHelper = require("./utils/kitHelper"); var resources = require("../resources/resourceManager"); var cordovaComponentCommand = require("./utils/cordovaComponentCommand"); var tacoUtility = require("taco-utils"); var CordovaHelper = tacoUtility.CordovaHelper; var CordovaWrapper = tacoUtility.CordovaWrapper; var CordovaComponentCommand = cordovaComponentCommand.CordovaComponentCommand; var Logger = tacoUtility.Logger; var LoggerHelper = tacoUtility.LoggerHelper; /** * Plugin * * Handles "taco plugin" */ var Plugin = (function (_super) { __extends(Plugin, _super); function Plugin() { var _this = this; _super.apply(this, arguments); this.name = "platform"; this.subcommands = [ { // taco plaform add <platform> name: "add", run: function () { return _this.add(); } }, { // taco plaform remote/update/check <platform> name: "fallback", run: function () { return _this.passthrough(); }, canHandleArgs: function () { return true; } }, ]; } Object.defineProperty(Plugin.prototype, "knownOptions", { get: function () { return Plugin.KNOWN_OPTIONS; }, enumerable: true, configurable: true }); Object.defineProperty(Plugin.prototype, "knownSubCommands", { get: function () { return Plugin.KNOWN_SUBCOMMANDS; }, enumerable: true, configurable: true }); Object.defineProperty(Plugin.prototype, "shortFlags", { get: function () { return Plugin.SHORT_HANDS; }, enumerable: true, configurable: true }); Object.defineProperty(Plugin.prototype, "knownTargetsSubCommands", { get: function () { return Plugin.KNOWN_TARGETS_SUBCOMMANDS; }, enumerable: true, configurable: true }); Plugin.prototype.getCommandOptions = function (commandData) { // Sanitize the --variable option flags var variables = commandData.options["variable"] || []; var cli_variables = {}; variables.forEach(function (variable) { var keyval = variable.split("="); cli_variables[keyval[0].toUpperCase()] = keyval[1]; }); return { searchpath: commandData.options["searchpath"], noregistry: commandData.options["noregistry"], cli_variables: cli_variables, browserify: commandData.options["browserify"], link: commandData.options["link"], save: commandData.options["save"], shrinkwrap: commandData.options["shrinkwrap"] }; }; Plugin.prototype.runCordovaCommand = function (targets) { var commandData = this.data; return CordovaWrapper.plugin(commandData.subCommand, commandData, targets, commandData.commandOptions); }; Plugin.prototype.getConfigXmlVersionSpec = function (targetName, projectInfo) { return CordovaHelper.getPluginVersionSpec(targetName, projectInfo); }; Plugin.prototype.editVersionOverrideInfo = function (pluginInfos, projectInfo) { var commandData = this.data; var infos = pluginInfos.map(function (pluginInfo) { return { name: pluginInfo.name, spec: pluginInfo.spec, pluginVariables: commandData.commandOptions.cli_variables }; }); return CordovaHelper.editEngineVersionSpecs(infos, projectInfo); }; Plugin.prototype.getKitOverride = function (pluginId, kitId) { return KitHelper.getPluginOverridesForKit(kitId) .then(function (kitOverrides) { var version = ""; var src = ""; if (kitOverrides && kitOverrides[pluginId]) { version = kitOverrides[pluginId].version; src = kitOverrides[pluginId].src; if (kitOverrides[pluginId]["supported-platforms"]) { Logger.log(resources.getString("CommandPluginTestedPlatforms", pluginId, kitOverrides[pluginId]["supported-platforms"])); } } return CordovaComponentCommand.makeCordovaComponentInfo(pluginId, version, src); }); }; /** * Prints the platform addition/removal operation progress message */ Plugin.prototype.printInProgressMessage = function (plugins) { // no progress shown for plugin operations }; /** * Prints the plugin operations success message */ Plugin.prototype.printSuccessMessage = function (plugins) { var commandData = this.data; switch (commandData.subCommand) { case "add": { Logger.log(resources.getString("CommandPluginWithIdStatusAdded", plugins)); // Print the onboarding experience Logger.log(resources.getString("OnboardingExperienceTitle")); LoggerHelper.logList(["HowToUseCommandInstallReqsPlugin", "HowToUseCommandSetupRemote", "HowToUseCommandBuildPlatform", "HowToUseCommandEmulatePlatform", "HowToUseCommandRunPlatform"].map(function (msg) { return resources.getString(msg); })); ["", "HowToUseCommandHelp", "HowToUseCommandDocs"].forEach(function (msg) { return Logger.log(resources.getString(msg)); }); break; } case "remove": { Logger.log(resources.getString("CommandPluginStatusRemoved", plugins)); break; } case "update": { Logger.log(resources.getString("CommandPluginStatusUpdated", plugins)); break; } } }; Plugin.KNOWN_OPTIONS = { searchpath: String, noregistry: String, variable: Array, browserify: Boolean, link: Boolean, save: Boolean, shrinkwrap: Boolean }; Plugin.SHORT_HANDS = {}; Plugin.KNOWN_SUBCOMMANDS = ["add", "remove", "list", "search", "check"]; // list of subcommands which require a target (for e.g. a platform name or plugin id) Plugin.KNOWN_TARGETS_SUBCOMMANDS = ["add", "remove", "update"]; return Plugin; }(cordovaComponentCommand.CordovaComponentCommand)); module.exports = Plugin; //# sourceMappingURL=plugin.js.map