UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

82 lines 3.45 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const upgradeSkillOptions_schema_1 = __importDefault(require("./../../../.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema")); const InFlightEntertainment_1 = __importDefault(require("../../../InFlightEntertainment")); const EsLint9Migrator_1 = __importDefault(require("../../../migration/EsLint9Migrator")); const ScriptUpdater_1 = __importDefault(require("../../../updaters/ScriptUpdater")); const action_utility_1 = __importDefault(require("../../../utilities/action.utility")); const AbstractAction_1 = __importDefault(require("../../AbstractAction")); class UpgradeAction extends AbstractAction_1.default { invocationMessage = 'Upgrading your skill... 💪'; optionsSchema = upgradeSkillOptions_schema_1.default; commandAliases = ['upgrade', 'update']; async execute(options) { const { upgradeMode } = this.validateAndNormalizeOptions(options); await EsLint9Migrator_1.default.Migrator({ cwd: this.cwd, }).migrate(); const isInSpruceModule = this.features.isInSpruceModule(); if (isInSpruceModule) { await this.updateScripts({ shouldConfirm: upgradeMode !== 'forceEverything', }); } try { const files = isInSpruceModule ? await this.Writer('node', { upgradeMode, }).writeNodeModule(this.cwd, { shouldConfirmBeforeWriting: true, shouldWriteIndex: false, }) : []; this.ui.clear(); InFlightEntertainment_1.default.start([ "Let's start the upgrade!", 'While things are going, see if you can beat 1k points!', 'Go!!!!', ]); const dependencyResults = await this.reInstallPackageDependencies(); return action_utility_1.default.mergeActionResults(dependencyResults, { headline: 'Upgrade', files, }); } finally { InFlightEntertainment_1.default.stop(); this.ui.renderHero('Upgrade'); } } async reInstallPackageDependencies() { return this.Action('node', 'updateDependencies').execute({}); } async updateScripts(options) { const features = await this.features.getInstalledFeatures(); let scripts = {}; const pkg = this.Service('pkg'); if (!features.find((f) => f.code === 'skill')) { const build = pkg.get('scripts.build'); if (build === 'yarn run build.tsc --sourceMap ; yarn run resolve-paths') { pkg.unset(['scripts', 'build']); } } for (const feature of features) { scripts = { ...scripts, ...feature.scripts, }; } const scriptUpdater = ScriptUpdater_1.default.FromFeature(this.parent, { latestScripts: scripts, }); await scriptUpdater.update({ shouldConfirmIfScriptExistsButIsDifferent: options.shouldConfirm, }); } } exports.default = UpgradeAction; //# sourceMappingURL=UpgradeAction.js.map