@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
69 lines • 2.51 kB
JavaScript
;
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