UNPKG

@platformos/pos-cli

Version:
50 lines (40 loc) 1.53 kB
import ora from 'ora'; import { makeArchive } from '../archive.js'; import { push, printDeployReport } from '../push.js'; import logger from '../logger.js'; import report from '../logger/report.js'; import ServerError from '../ServerError.js'; const createArchive = async (env) => { const numberOfFiles = await makeArchive(env, { withoutAssets: false }); if (numberOfFiles == 0) throw 'Archive failed to create.'; }; const uploadArchive = async (env, { spinner } = {}) => { const res = await push(env, { spinner }); if (!res) throw 'Server did not accept release file.'; return res; }; const strategy = async ({ env, _authData, _params }) => { try { process.env.FORCE_COLOR = true; const url = env.MARKETPLACE_URL; await createArchive(env); const spinner = ora({ text: `Deploying to: ${url}`, stream: process.stdout }); spinner.start(); const result = await uploadArchive(env, { spinner }); spinner.stop(); const verbose = env.VERBOSE === true || env.VERBOSE === 'true'; printDeployReport(result.report, { verbose }); logger.Success(`Deploy succeeded after ${result.duration}`, { hideTimestamp: true }); report('[OK] Deploy: Default Strategy'); } catch (e) { if (ServerError.isNetworkError(e)) { await logger.Error('Deploy failed.', { exit: false }); await ServerError.handler(e); process.exit(1); } else { await logger.Error(`Deploy failed. ${e}`); } report('[ERR] Deploy: Default Strategy'); } }; export default strategy;