UNPKG

ryuu

Version:

Domo App Dev Studio CLI, The main tool used to create, edit, and publish app designs to Domo

62 lines 2.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const manifest_1 = require("../util/manifest"); const login_1 = require("../util/login"); const log_1 = require("../util/log"); const appStructure = require("../util/appStructure"); const index_1 = require("../models/index"); const prompts_1 = require("../util/prompts"); module.exports = (program) => { program .command('release') .description('prepare a design for app store release') .option('-v, --version <value>', 'Version to release (bypasses interactive prompt, defaults to "latest")') .action(options => { new login_1.Login().getClient().then(client => { const manifest = manifest_1.ManifestUtils.getManifest(program.opts().manifest, true); // make sure app has been published first if (!manifest.id) { log_1.log.fail('Cannot release until design is published.', 'Please publish your Custom App design (with the `domo publish` command) first'); } // make sure there is a thumbnail.png when releasing if (!appStructure.hasThumbnail()) { log_1.log.fail(index_1.constant.THUMBNAIL_CREATE_WARNING, index_1.constant.CREATE_THUMBNAIL); } // prompt the user for which design version they want to release, defaulting to latest client .getVersions(manifest.id) .then(async (versions) => { versions.reverse(); versions.unshift('latest'); let version; // Check if version was provided via --version flag if (options.version) { // Validate the provided version if (versions.includes(options.version)) { version = options.version; log_1.log.ok(`Using version: ${version}`); } else { log_1.log.fail(`Invalid version: ${options.version}`, `Available versions: ${versions.join(', ')}`); return; } } else { // Prompt for version interactively version = await (0, prompts_1.createSelect)('select a version to release', versions); } // release the kraken try { await client.release(manifest.id, version); log_1.log.ok('Design version (' + version + ') released'); } catch (err) { log_1.log.fail('Error releasing design'); console.error(err); } }) .catch(() => log_1.log.clientRequestFailed('Error releasing app design')); }); }); }; //# sourceMappingURL=release.js.map