UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

51 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.appModelsRemoveComponent = void 0; const path_1 = require("path"); const logSymbols = require("log-symbols"); const alwayscli_1 = require("@alwaysai/alwayscli"); const paths_1 = require("../../../paths"); const app_1 = require("../../../core/app"); const model_1 = require("../../../core/model"); const util_1 = require("../../../util"); const project_1 = require("../../project"); async function appModelsRemoveComponent(props) { const { id, purge, removeFromProject } = props; const appJsonFile = (0, app_1.AppJsonFile)(); const models = appJsonFile.read().models; if (!models || Object.keys(models).indexOf(id) === -1) { throw new alwayscli_1.CliTerseError(`Model ${id} not part of application config!`); } appJsonFile.removeModel(id); let success = true; if (purge) { const { publisher, name } = model_1.ModelId.parse(id); const modelDir = path_1.posix.join(paths_1.APP_MODELS_DIRECTORY_NAME, publisher, name); const targetJsonFile = (0, app_1.TargetJsonFile)(); try { const targetSpawner = targetJsonFile.readHostSpawner(); await targetSpawner.rimraf(modelDir); } catch (error) { util_1.logger.error((0, util_1.stringifyError)(error)); success = false; (0, util_1.echo)(`${logSymbols.error} Failed to purge model package: ${error}`); } } if (removeFromProject) { try { await (0, project_1.removeModelFromProject)(id); } catch (error) { util_1.logger.error((0, util_1.stringifyError)(error)); success = false; (0, util_1.echo)(`${logSymbols.error} Failed to purge model package: ${error}`); } } if (!success) { throw new alwayscli_1.CliTerseError(`Failed during process of removing ${id}`); } (0, util_1.echo)(`${logSymbols.success} Remove ${id}`); } exports.appModelsRemoveComponent = appModelsRemoveComponent; //# sourceMappingURL=app-models-remove-component.js.map