UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

69 lines 2.51 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const schema_1 = require("@sprucelabs/schema"); const SpruceError_1 = __importDefault(require("../../../errors/SpruceError")); const AbstractAction_1 = __importDefault(require("../../AbstractAction")); const constants_1 = require("../constants"); const optionsSchema = (0, schema_1.buildSchema)({ id: 'disableCacheAction', description: 'Disable caching.', fields: {}, }); class DisableCacheAction extends AbstractAction_1.default { optionsSchema = optionsSchema; commandAliases = [ 'disable.cache', 'stop.cache', 'disable.caching', 'stop.caching', ]; invocationMessage = 'Disabling cache...'; async execute(_options) { try { await this.Service('command').execute('which docker'); await this.Service('command').execute(constants_1.DISABLE_NPM_CACHE_COMMAND); return { headline: 'Stopping cache', summaryLines: ['Shutting down cache!'], }; } catch (err) { let error = err; if (err.options?.cmd?.includes('which')) { error = new SpruceError_1.default({ code: 'MISSING_DEPENDENCIES', dependencies: [ { name: 'Docker', hint: 'Get Docker here: https://www.docker.com/products/docker-desktop', }, ], }); } else if (err.message?.toLowerCase()?.includes('no such container')) { error = new SpruceError_1.default({ code: 'CACHE_NOT_ENABLED', }); } else { error = new SpruceError_1.default({ code: 'MISSING_DEPENDENCIES', dependencies: [ { name: 'Docker', hint: 'Get Docker here: https://www.docker.com/products/docker-desktop', }, ], }); } return { errors: [error], }; } } } exports.default = DisableCacheAction; //# sourceMappingURL=DisableAction.js.map