alwaysai
Version:
The alwaysAI command-line interface (CLI)
51 lines • 2.12 kB
JavaScript
;
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