@platformos/pos-cli
Version:
Manage your platformOS application
50 lines (40 loc) • 1.53 kB
JavaScript
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;