fix(db): fix configuration loading

This commit is contained in:
2025-11-11 09:07:20 +02:00
parent 7d1cf7296d
commit 8cd5457504
6 changed files with 28 additions and 39 deletions
+2 -3
View File
@@ -120,6 +120,7 @@
"snakecase-keys": "^9.0.2",
"tiktoken": "^1.0.22",
"uuid": "^13.0.0",
"zod": "^4.1.12",
},
"devDependencies": {
"@types/pg": "^8.15.6",
@@ -151,7 +152,7 @@
"react-dom": "^19.1.1",
"tailwind-merge": "^3.3.1",
"tw-animate-css": "^1.3.6",
"zod": "^3.25.76",
"zod": "^4.1.12",
},
"devDependencies": {
"@basango/tsconfig": "workspace:*",
@@ -2466,8 +2467,6 @@
"@babel/traverse--for-generate-function-map/@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="],
"@basango/ui/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="],
"@commitlint/format/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="],
"@commitlint/load/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="],
+2 -1
View File
@@ -8,7 +8,8 @@
"pg": "^8.16.3",
"snakecase-keys": "^9.0.2",
"tiktoken": "^1.0.22",
"uuid": "^13.0.0"
"uuid": "^13.0.0",
"zod": "^4.1.12"
},
"devDependencies": {
"@types/pg": "^8.15.6",
+1 -3
View File
@@ -1,13 +1,11 @@
import { createEnvAccessor } from "@devscast/config";
import { drizzle } from "drizzle-orm/node-postgres";
import { Pool } from "pg";
import { env } from "@/config";
import * as schema from "@/schema";
const isDevelopment = process.env.NODE_ENV === "development";
const env = createEnvAccessor(["BASANGO_DATABASE_URL"] as const);
const pool = new Pool({
allowExitOnIdle: true,
connectionString: env("BASANGO_DATABASE_URL"),
+20
View File
@@ -0,0 +1,20 @@
import path from "node:path";
import { loadConfig } from "@devscast/config";
import { z } from "zod";
const PROJECT_DIR = path.resolve(__dirname, "../../");
export const { env, config } = loadConfig({
env: {
knownKeys: [
"BASANGO_DATABASE_URL",
"BASANGO_SOURCE_DATABASE_HOST",
"BASANGO_SOURCE_DATABASE_USER",
"BASANGO_SOURCE_DATABASE_PASS",
"BASANGO_SOURCE_DATABASE_NAME",
] as const,
path: path.join(PROJECT_DIR, ".env"),
},
schema: z.object({}),
});
+2 -31
View File
@@ -1,39 +1,9 @@
#!/usr/bin/env bun
import { stdin as input, stdout as output } from "node:process";
import { createInterface } from "node:readline/promises";
import { createEnvAccessor } from "@devscast/config";
import { env } from "@/config";
import { Engine } from "@/importer";
const env = createEnvAccessor([
"BASANGO_SOURCE_DATABASE_HOST",
"BASANGO_SOURCE_DATABASE_USER",
"BASANGO_SOURCE_DATABASE_PASS",
"BASANGO_SOURCE_DATABASE_NAME",
"BASANGO_DATABASE_URL",
]);
async function askConfirmation(question: string, def = false) {
const rl = createInterface({ input, output });
const suffix = def ? "[Y/n]" : "[y/N]";
const answer = await rl.question(`${question} ${suffix} `);
rl.close();
const v = String(answer || "")
.trim()
.toLowerCase();
if (v === "y" || v === "yes") return true;
if (v === "n" || v === "no") return false;
return def;
}
async function main() {
const ok = await askConfirmation("Do you want to continue?", false);
if (!ok) {
console.warn("Process aborted");
process.exit(1);
}
const engine = new Engine(
{
database: env("BASANGO_SOURCE_DATABASE_NAME"),
@@ -54,6 +24,7 @@ async function main() {
console.log(`Imported ${count} records into ${t} table.`);
}
console.log("Import completed successfully");
process.exit(0);
} finally {
await engine.close();
}
+1 -1
View File
@@ -9,7 +9,7 @@
"react-dom": "^19.1.1",
"tailwind-merge": "^3.3.1",
"tw-animate-css": "^1.3.6",
"zod": "^3.25.76"
"zod": "^4.1.12"
},
"devDependencies": {
"@basango/tsconfig": "workspace:*",