in src/core/utils/cli-config.ts [183:232]
export async function writeConfigFile(configFilePath: string, configName: string, config: SWACLIConfig) {
let configFile: SWACLIConfigFile = {
// TODO: find node_modules/ path and use local schema if found
$schema: swaCliConfigSchemaUrl,
configurations: {},
};
if (swaCliConfigFileExists(configFilePath)) {
logger.silly(`Loading existing swa-cli.config.json file at ${configFilePath}`);
try {
const configJson = await readFile(configFilePath, "utf-8");
configFile = JSON.parse(configJson) as SWACLIConfigFile;
} catch (error) {
logger.error(`Error parsing ${configFilePath}`);
if (error instanceof Error) {
logger.error(error);
}
logger.error("Cannot update existing configuration file.");
logger.error("Please fix or delete your swa-cli.config.json file and try again.");
return;
}
}
if (typeof configFile !== "object" || configFile.constructor !== Object) {
logger.error(`Error parsing ${configFilePath}`);
logger.error("Invalid configuration content found.");
logger.error("Please fix or delete your swa-cli.config.json file and try again.");
return;
}
if (configFile.configurations === undefined) {
logger.silly(`Creating "configurations" property in swa-cli.config.json file at ${configFilePath}`);
configFile.configurations = {};
}
configFile.configurations[configName] = config;
try {
logger.silly(`Writing configuration "${configName}" to swa-cli.config.json`);
logger.silly(config);
await writeFile(configFilePath, JSON.stringify(configFile, null, 2));
} catch (error) {
logger.error(`Error writing configuration to ${configFilePath}`);
if (error instanceof Error) {
logger.error(error);
}
}
}