UNPKG

ask-cli-x

Version:

Alexa Skills Kit (ASK) Command Line Interfaces

69 lines (68 loc) 2.95 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createCommand = void 0; const abstract_command_1 = require("../abstract-command"); const messenger_1 = __importDefault(require("../../view/messenger")); const option_model_json_1 = __importDefault(require("../option-model.json")); const decompiler_1 = __importDefault(require("./decompiler")); const cli_error_1 = __importDefault(require("../../exceptions/cli-error")); const cli_file_not_found_error_1 = __importDefault(require("../../exceptions/cli-file-not-found-error")); const cli_warn_1 = __importDefault(require("../../exceptions/cli-warn")); const profile_helper_1 = __importDefault(require("../../utils/profile-helper")); const path_1 = __importDefault(require("path")); /** * ASK Project decompile command. * Decompiles the project into acdl files. * Current scope: Alexa Conversations artifacts. */ class DecompileCommand extends abstract_command_1.AbstractCommand { name() { return "decompile"; } description() { return "decompile the skill-package (alexa conversations only)."; } requiredOptions() { return []; } optionalOptions() { return ["profile"]; } async handle(cmd) { try { const profile = profile_helper_1.default.runtimeProfile(cmd.profile); const askCompiler = new decompiler_1.default({ profile }); return new Promise((resolve, _) => { askCompiler.decompile({ rootDir: process.cwd() }, (files) => { files.forEach((file) => { const relativePath = path_1.default.relative(process.cwd(), file); const outFile = relativePath.replace(".json", ".acdl").replace(".ask.acdl", ".acdl"); messenger_1.default.getInstance().info(`${relativePath} => ${outFile}`); }); messenger_1.default.getInstance().info("Decompiled Skill Artifacts successfully."); resolve(); }); }); } catch (err) { if (err instanceof cli_warn_1.default) { messenger_1.default.getInstance().warn(err.message); } else if (err instanceof cli_file_not_found_error_1.default) { messenger_1.default.getInstance().warn(err.message); } else if (err instanceof cli_error_1.default) { messenger_1.default.getInstance().error(err.message); } else { messenger_1.default.getInstance().error(err); } throw err; } } } exports.default = DecompileCommand; exports.createCommand = new DecompileCommand(option_model_json_1.default).createCommand();