alwaysai
Version:
The alwaysAI command-line interface (CLI)
43 lines • 1.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findOrWriteAppJsonFileComponent = void 0;
const alwayscli_1 = require("@alwaysai/alwayscli");
const paths_1 = require("../../paths");
const app_1 = require("../../core/app");
const util_1 = require("../../util");
const config_file_exists_and_is_valid_1 = require("../../util/config-file-exists-and-is-valid");
const general_1 = require("../general");
const WRITE_MESSAGE = `Write ${paths_1.APP_JSON_FILE_NAME}`;
const FOUND_MESSAGE = `Found ${paths_1.APP_JSON_FILE_NAME}`;
async function findOrWriteAppJsonFileComponent(props) {
const { yes } = props;
const appJsonFile = (0, app_1.AppJsonFile)();
if (!appJsonFile.exists()) {
const confirmed = yes ||
(await (0, general_1.confirmWriteFilePromptComponent)({
fileName: paths_1.APP_JSON_FILE_NAME,
description: 'Configuration file'
}));
if (!confirmed) {
throw new alwayscli_1.CliTerseError((0, util_1.UnableToProceedWithoutMessage)(paths_1.APP_JSON_FILE_NAME));
}
try {
appJsonFile.remove();
appJsonFile.initialize();
(0, util_1.Spinner)(WRITE_MESSAGE).succeed();
}
catch (exception) {
(0, util_1.Spinner)(WRITE_MESSAGE).fail();
throw exception;
}
}
else if (await (0, config_file_exists_and_is_valid_1.checkConfigFileExistsAndValid)(appJsonFile)) {
(0, util_1.Spinner)(FOUND_MESSAGE).succeed();
}
// if it exists but doesn't pass the checkConfigFileExistsAndValid, then it's syntax error.
else {
throw new alwayscli_1.CliTerseError((0, util_1.UnableToProceedWithoutMessage)(paths_1.APP_JSON_FILE_NAME));
}
}
exports.findOrWriteAppJsonFileComponent = findOrWriteAppJsonFileComponent;
//# sourceMappingURL=find-or-write-app-json-file-component.js.map