Budibase is an open-source low-code platform for creating internal apps in minutes. Supports PostgreSQL, MySQL, MSSQL, MongoDB, Rest API, Docker, K8s 🚀
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

50 lines
982 B

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