aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/dotenv.ts28
-rw-r--r--src/server.ts8
2 files changed, 34 insertions, 2 deletions
diff --git a/src/lib/dotenv.ts b/src/lib/dotenv.ts
new file mode 100644
index 0000000..2fb8e65
--- /dev/null
+++ b/src/lib/dotenv.ts
@@ -0,0 +1,28 @@
+//
+// ~~~ read a .env file
+//
+
+// imports
+import { readFileSync } from "node:fs"
+
+// load .env function
+export default function loadDotenv() {
+
+ const file: string = ".env" // todo: don't hard-code the location
+
+ try {
+
+ const fileContents = readFileSync(file, "utf8")
+ .split("\n")
+ .filter((line) => line !== "")
+ .map((line) => line.split("="))
+
+ const fileEntries = new Map(fileContents)
+ return Object.fromEntries(fileEntries)
+
+ } catch(e) {
+
+ console.error("!> cannot read .env file")
+
+ }
+}
diff --git a/src/server.ts b/src/server.ts
index 8741e16..424a4f0 100644
--- a/src/server.ts
+++ b/src/server.ts
@@ -2,10 +2,14 @@
// ~~~ server process
//
-// setup app
+// imports
import app from "./app.ts"
+import loadDotenv from "@lib/dotenv.ts"
+
+// setup app
+const dotenv = loadDotenv()
-const PORT = 3000
+const PORT = dotenv?.HC_PORT || 3000
// start app
app.listen(PORT, () => {