fix: use the $env/dyanmic/private store for DATABASE_URL

This commit is contained in:
wilson 2026-03-01 10:17:31 +00:00
parent c9feb54cd4
commit 9882a965eb
4 changed files with 43 additions and 33 deletions

8
.prettierignore Normal file
View file

@ -0,0 +1,8 @@
src/content/**/*
*.md
*.html
.svelte-kit
build
drafts
generated
node_modules

View file

@ -1,20 +1,20 @@
import { notStrictEqual } from 'node:assert';
import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3';
import { PrismaClient } from '../../generated/prisma/client.js';
import { DATABASE_URL } from '$env/static/private';
import { notStrictEqual } from "node:assert";
import { PrismaBetterSqlite3 } from "@prisma/adapter-better-sqlite3";
import { PrismaClient } from "../../generated/prisma/client.js";
import { env } from "$env/dynamic/private";
export class PrismaClientFactory {
private constructor(private readonly databaseUrl: string) {}
public static fromEnv(): PrismaClientFactory {
const value = DATABASE_URL ?? '';
notStrictEqual(value, '', `"env.DATABASE_URL" must be defined`);
private constructor(private readonly databaseUrl: string) {}
public static fromEnv(): PrismaClientFactory {
const value = env.PRIVATE_DATABASE_URL ?? "";
notStrictEqual(value, "", `"env.PRIVATE_DATABASE_URL" must be defined`);
return new PrismaClientFactory(value);
}
return new PrismaClientFactory(value);
}
createClient(): PrismaClient {
const adapter = new PrismaBetterSqlite3({ url: this.databaseUrl });
const prisma = new PrismaClient({ adapter });
return prisma;
}
createClient(): PrismaClient {
const adapter = new PrismaBetterSqlite3({ url: this.databaseUrl });
const prisma = new PrismaClient({ adapter });
return prisma;
}
}

View file

@ -1,19 +1,21 @@
import adapter from '@sveltejs/adapter-node';
import preprocess from 'svelte-preprocess';
import adapter from "@sveltejs/adapter-node";
import preprocess from "svelte-preprocess";
/** @type {import('@sveltejs/kit').Config} */
const config = {
extensions: ['.svelte', '.md'],
// Consult https://github.com/sveltejs/svelte-preprocess
// for more information about preprocessors
preprocess: [preprocess()],
extensions: [".svelte", ".md"],
// Consult https://github.com/sveltejs/svelte-preprocess
// for more information about preprocessors
preprocess: [preprocess()],
kit: {
adapter: adapter({ split: false }),
env: {
publicPrefix: 'PUBLIC_',
},
kit: {
adapter: adapter({ split: false }),
env: {
publicPrefix: "PUBLIC_",
privatePrefix: "PRIVATE_",
},
},
};
export default config;

View file

@ -1,14 +1,14 @@
import { sveltekit } from '@sveltejs/kit/vite';
import { sveltekit } from "@sveltejs/kit/vite";
/** @type {import('vite').UserConfig} */
const config = {
plugins: [sveltekit()],
resolve: {
alias: {
$lib: '/src/lib',
$srcPrisma: '/src/prisma',
},
plugins: [sveltekit()],
resolve: {
alias: {
$lib: "/src/lib",
$srcPrisma: "/src/prisma",
},
},
};
export default config;