UNPKG

a2r

Version:
80 lines (79 loc) 4.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const execa_1 = __importDefault(require("execa")); const getLatestVersion_1 = __importDefault(require("./getLatestVersion")); const colors_1 = require("./colors"); const settings_1 = require("./settings"); const getCleanProjectName_1 = __importDefault(require("./getCleanProjectName")); const docker_1 = require("./docker"); const package_json_1 = __importDefault(require("../package.json")); const settings_2 = require("../settings"); const update = async (info) => { const { options } = info; const latestVersion = await (0, getLatestVersion_1.default)(); const { version: currentVersion } = package_json_1.default; if (!options.force && latestVersion === currentVersion) { (0, colors_1.log)(`Your project is already using the latest version (${(0, colors_1.version)(currentVersion)}) of ${colors_1.framework} 👌`); } else { (0, colors_1.log)(`>>> Updating project from ${(0, colors_1.version)(currentVersion)} to ${(0, colors_1.version)(latestVersion)}.`); await (0, execa_1.default)('npm', ['install', `a2r@${latestVersion}`, '--save'], { stdout: process.stdout, stderr: process.stderr, }); (0, colors_1.log)(`>>> Uninstalling from server, just in case (would cause problems)`); await (0, execa_1.default)('npm', ['uninstall', `a2r`, '--save', '--prefix', './server'], { stdout: process.stdout, stderr: process.stderr, }); const settings = await (0, settings_1.getSettings)(); await Promise.all(settings.projects.map(async (p) => { (0, colors_1.log)(`>>> Updating ${p.path}`); await (0, execa_1.default)('npm', ['install', `a2r@${latestVersion}`, '--save-dev', '--prefix', `./${p.path}`], { stdout: process.stdout, stderr: process.stderr, }); })); (0, colors_1.log)('>>> Removing old docker images'); const devServerImage = 'public.ecr.aws/r7l7n8i7/acttoreact/server-dev:latest'; if (await (0, docker_1.imageExists)(devServerImage)) { await (0, docker_1.removeImage)(devServerImage); } const serverImage = 'public.ecr.aws/r7l7n8i7/acttoreact/server:latest'; if (await (0, docker_1.imageExists)(serverImage)) { await (0, docker_1.removeImage)(serverImage); } settings.server = Object.assign(Object.assign(Object.assign({}, settings_1.defaultServer), settings.server), { env: Object.assign(Object.assign({}, settings_1.defaultServer.env), (settings.server.env || {})) }); settings.devServer = Object.assign(Object.assign(Object.assign({}, settings_1.defaultDevServer), settings.devServer), { env: Object.assign(Object.assign({}, settings_1.defaultDevServer.env), (settings.devServer.env || {})) }); const cleanProjectName = await (0, getCleanProjectName_1.default)(); if (!settings.projectName) { settings.projectName = cleanProjectName; } settings.projects = settings.projects.map((p) => { if (p.type === 'next') { return Object.assign({ dockerBase: settings_2.defaultDockerImage, dockerWorkingDir: settings_2.defaultDockerWorkDir, dockerName: `${cleanProjectName}-${p.path}` }, p); } return p; }); settings.version = latestVersion; await (0, settings_1.saveSettings)(settings); (0, colors_1.log)(`>>> Project updated to ${(0, colors_1.version)(latestVersion)}.`); } }; const command = { run: update, name: 'update', description: `Updates the project to the last version of ${colors_1.framework}`, args: [ { name: 'force', description: 'Update without checking current version', type: Boolean, typeLabel: ' ', }, ], }; exports.default = command;