const fs = require("fs") const path = require("path") const os = require("os") const { error } = require("../utils") class ConfigManager { constructor() { this.path = path.join(os.homedir(), ".budibase.json") if (!fs.existsSync(this.path)) { fs.writeFileSync(this.path, "{}") } } get config() { try { return JSON.parse(fs.readFileSync(this.path, "utf8")) } catch (err) { console.log( error( "Error parsing configuration file. Please check your .budibase.json is valid." ) ) return {} } } set config(json) { fs.writeFileSync(this.path, JSON.stringify(json)) } getValue(key) { return this.config[key] } setValue(key, value) { const updated = { ...this.config, [key]: value, } this.config = updated } removeKey(key) { const updated = { ...this.config } delete updated[key] this.config = updated } } module.exports = ConfigManager