hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/lib/config.js
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2025-12-09 21:55:02 +0100
committerhachem <im@hachem.wtf>2025-12-09 21:55:02 +0100
commit50e62e246fef7975866c244e08ead7c681d50349 (patch)
treeb863e4b818d5bfa4fbbdcb774351b094d323e3d1 /lib/config.js
parentee977e942c8deabde89f7979fc00850922062926 (diff)
[add]: prompt+banner+refactor
Diffstat (limited to 'lib/config.js')
-rw-r--r--lib/config.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/lib/config.js b/lib/config.js
new file mode 100644
index 0000000..9d2ed39
--- /dev/null
+++ b/lib/config.js
@@ -0,0 +1,62 @@
+const path = require("path")
+const fs = require("fs-extra")
+
+const configPath = path.join(__dirname, "../config/config.json")
+const apiPath = path.join(__dirname, "../config/api.json")
+const cachePath = path.join(__dirname, "../cache/mod_versions.json")
+
+const LoadConfig = () =>
+{
+ return require(configPath)
+}
+
+const LoadApi = () =>
+{
+ try
+ {
+ return require(apiPath)
+ }
+ catch
+ {
+ return {}
+ }
+}
+
+const LoadCache = async () =>
+{
+ try
+ {
+ if (await fs.pathExists(cachePath))
+ return JSON.parse(await fs.readFile(cachePath, "utf8"))
+ }
+ catch (err)
+ {
+ console.error("[Cache] Failed to load:", err)
+ }
+ return {}
+}
+
+const SaveCache = async cache =>
+{
+ try
+ {
+ await fs.ensureDir(path.dirname(cachePath))
+ await fs.writeFile(cachePath, JSON.stringify(cache, null, 2))
+ }
+ catch (err)
+ {
+ console.error("[Cache] Failed to save:", err)
+ }
+}
+
+module.exports =
+{
+ configPath,
+ apiPath,
+ cachePath,
+ LoadConfig,
+ LoadApi,
+ LoadCache,
+ SaveCache
+}
+