UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

41 lines 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkForInvalidModelsComponent = void 0; const alwayscli_1 = require("@alwaysai/alwayscli"); const paths_1 = require("../../../paths"); const app_1 = require("../../../core/app"); const project_1 = require("../../../core/project"); const model_1 = require("../../../core/model"); const config_file_exists_and_is_valid_1 = require("../../../util/config-file-exists-and-is-valid"); async function checkForInvalidModelsComponent() { // Retrieve list of models and versions from the $APP_JSON_FILE_NAME const appJsonFile = (0, app_1.AppJsonFile)(); if (!(await (0, config_file_exists_and_is_valid_1.checkConfigFileExistsAndValid)(appJsonFile))) { throw new alwayscli_1.CliTerseError(`Application does not have a valid ${paths_1.APP_JSON_FILE_NAME} file.`); } const appJson = appJsonFile.read(); const { project: { id } } = (0, project_1.ProjectJsonFile)().read(); const projectJsonModels = appJson.models; // Retrieve list of models and versions from the RPC const userModels = {}; (await (0, model_1.getModels)({ yes: true, projectUuid: id })).forEach((modelEntry) => { userModels[modelEntry['id']] = modelEntry['version']; }); // Compare the lists and collect models that are either missing or have mismatched versions const invalidModels = {}; for (const projectModel in projectJsonModels) { // Check if model is missing if (!userModels[projectModel]) { invalidModels[projectModel] = projectJsonModels[projectModel]; } const expectedVersion = projectJsonModels[projectModel]; const actualVersion = userModels[projectModel]; // Check if the model version doesn't match if (actualVersion < expectedVersion) { invalidModels[projectModel] = projectJsonModels[projectModel]; } } return invalidModels; } exports.checkForInvalidModelsComponent = checkForInvalidModelsComponent; //# sourceMappingURL=app-invalid-models-check-component.js.map