ask-cli-x
Version:
Alexa Skills Kit (ASK) Command Line Interfaces
69 lines (68 loc) • 2.95 kB
JavaScript
;
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();