UNPKG

@equinor/fusion-framework-cli

Version:

--- title: Fusion Framework CLI ---

72 lines 3.33 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { exit } from 'node:process'; import { Spinner } from './utils/spinner.js'; import { chalk } from './utils/format.js'; import { resolveAppPackage, resolveAppKey } from '../lib/app-package.js'; import { isAppRegistered, getEndpointUrl, requireToken, uploadAppBundle } from './utils/index.js'; import assert from 'node:assert'; export const uploadApplication = (options) => __awaiter(void 0, void 0, void 0, function* () { const { bundle, env, service } = options; const spinner = Spinner.Global({ prefixText: chalk.dim('Upload') }); try { spinner.info('Validating FUSION_TOKEN'); // make sure token exist requireToken(); // call service discovery with token, will throw error if failed yield getEndpointUrl('apps', env, ''); spinner.succeed('Found valid FUSION_TOKEN'); } catch (e) { const err = e; spinner.fail(chalk.bgRed(err.message)); exit(1); } /* get package.json */ const pkg = yield resolveAppPackage(); const appKey = resolveAppKey(pkg.packageJson); try { spinner.info(`Verifying that ${appKey} is registered`); const state = { endpoint: '' }; try { state.endpoint = yield getEndpointUrl(`apps/${appKey}`, env, service); } catch (e) { const err = e; throw new Error(`Could not get endpoint from service discovery while verifying app. service-discovery status: ${err.message}`); } spinner.info('Using endpoint:', state.endpoint); const exist = yield isAppRegistered(state.endpoint); assert(exist, `${appKey} is not registered`); spinner.succeed(`${appKey} is registered`); } catch (e) { const err = e; spinner.fail('🙅‍♂️', chalk.bgRed(err.message)); throw err; } /* Upload app bundle */ try { spinner.info(`Uploading bundle ${chalk.yellowBright(bundle)} to appKey ${chalk.yellowBright(appKey)}`); const endpoint = yield getEndpointUrl(`bundles/apps/${appKey}`, env, service); if (!endpoint) { throw new Error('Could not get endpoint from service discovery'); } spinner.info(`Posting bundle to => ${endpoint}`); const uploadedBundle = yield uploadAppBundle(endpoint, bundle); spinner.succeed('✅', `Uploaded app: "${chalk.greenBright(appKey)}"`, `Version: "${chalk.greenBright(uploadedBundle.version)}"`); } catch (e) { const err = e; spinner.fail('🙅‍♂️', chalk.bgRed(err.message)); exit(1); } }); //# sourceMappingURL=upload-application.js.map