alwaysai
Version:
The alwaysAI command-line interface (CLI)
52 lines • 2.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findOrWriteProjectJsonFileComponent = void 0;
const alwayscli_1 = require("@alwaysai/alwayscli");
const project_select_component_1 = require("./project-select-component");
const constants_1 = require("../../constants");
const util_1 = require("../../util");
const project_1 = require("../../core/project");
const config_file_exists_and_is_valid_1 = require("../../util/config-file-exists-and-is-valid");
const paths_1 = require("../../paths");
const WRITE_MESSAGE = `Write ${paths_1.PROJECT_JSON_FILE_NAME}`;
async function findOrWriteProjectJsonFileComponent(props) {
var _a;
const { yes } = props;
const projectJsonFile = (0, project_1.ProjectJsonFile)();
if (await (0, config_file_exists_and_is_valid_1.checkConfigFileExistsAndValid)(projectJsonFile)) {
const storedProjectUuid = projectJsonFile.read().project.id;
const projectUuid = (_a = props.projectUuid) !== null && _a !== void 0 ? _a : storedProjectUuid;
await (0, project_1.requireUserIsCollaboratorOnProject)(projectUuid);
if (projectUuid !== storedProjectUuid) {
const project = await (0, project_select_component_1.projectSelectComponent)({ yes: true, projectUuid });
await writeProjectJsonFile(projectUuid, project.name.toString());
}
}
else {
const { projectUuid } = props;
const project = await (0, project_select_component_1.projectSelectComponent)({ yes, projectUuid });
if (!project.uuid) {
throw new alwayscli_1.CliTerseError(`Invalid project! ${constants_1.PLEASE_REPORT_THIS_ERROR_MESSAGE}`);
}
await writeProjectJsonFile(project.uuid.toString(), project.name.toString());
}
}
exports.findOrWriteProjectJsonFileComponent = findOrWriteProjectJsonFileComponent;
async function writeProjectJsonFile(projectUuid, projectName) {
const projectJsonFile = (0, project_1.ProjectJsonFile)();
const spinner = (0, util_1.Spinner)(WRITE_MESSAGE);
try {
projectJsonFile.write({
project: {
id: projectUuid,
name: projectName
}
});
spinner.succeed();
}
catch (exception) {
spinner.fail();
throw exception;
}
}
//# sourceMappingURL=find-or-write-project-json-file.js.map