Move env and log into index

This commit is contained in:
Dominic Ferrando
2026-07-01 23:24:27 -04:00
parent 593db80067
commit f2781e1803
4 changed files with 43 additions and 29 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
import { Kysely, PostgresDialect } from 'kysely';
import { type DB } from 'kysely-codegen';
import { Pool } from "pg";
import { env } from '../env';
import { env } from '../index';
const db = new Kysely<DB>({
dialect: new PostgresDialect({
-25
View File
@@ -1,25 +0,0 @@
function requireEnv(key: string): string {
const val = Bun.env[key];
if (!val) throw new Error(`Missing required environment variable: ${key}`);
return val;
}
function optionEnv(key: string, fallback: string = ""): string {
const val = Bun.env[key];
if (!val) return fallback;
return val;
}
export const env = {
PRINTFUL_AUTH: requireEnv("PRINTFUL_AUTH"),
PRINTFUL_STORE_ID: requireEnv("PRINTFUL_STORE_ID"),
WEBFLOW_SITE_ID: requireEnv("WEBFLOW_SITE_ID"),
WEBFLOW_COLLECTION_ID: requireEnv("WEBFLOW_COLLECTION_ID"),
WEBFLOW_AUTH: requireEnv("WEBFLOW_AUTH"),
WEBFLOW_WEBHOOK_SECRET: requireEnv("WEBFLOW_WEBHOOK_SECRET"),
AUTH_SECRET: requireEnv("AUTH_SECRET"),
ADMIN_PASSWORD: requireEnv("ADMIN_PASSWORD"),
DATABASE_URL: requireEnv("DATABASE_URL"),
NODE_ENV: optionEnv("NODE_ENV", "development"),
LOG_LEVEL: optionEnv("LOG_LEVEL", "info"),
};
+41 -1
View File
@@ -1,11 +1,51 @@
import cluster from 'node:cluster'
import os from 'node:os'
import process from 'node:process'
import { pino } from 'pino';
export const log = pino({
level: Bun.env.LOG_LEVEL ?? "info",
transport: Bun.env.NODE_ENV != "production"
? { target: "pino-pretty" }
: undefined,
});
export const env = {
PRINTFUL_AUTH: requireEnv("PRINTFUL_AUTH"),
PRINTFUL_STORE_ID: requireEnv("PRINTFUL_STORE_ID"),
WEBFLOW_SITE_ID: requireEnv("WEBFLOW_SITE_ID"),
WEBFLOW_COLLECTION_ID: requireEnv("WEBFLOW_COLLECTION_ID"),
WEBFLOW_AUTH: requireEnv("WEBFLOW_AUTH"),
WEBFLOW_WEBHOOK_SECRET: requireEnv("WEBFLOW_WEBHOOK_SECRET"),
AUTH_SECRET: requireEnv("AUTH_SECRET"),
ADMIN_PASSWORD: requireEnv("ADMIN_PASSWORD"),
DATABASE_URL: requireEnv("DATABASE_URL"),
NODE_ENV: optionEnv("NODE_ENV", "development"),
LOG_LEVEL: optionEnv("LOG_LEVEL", "info"),
};
if (cluster.isPrimary) {
for (let i = 0; i < os.availableParallelism(); i++)
cluster.fork()
} else {
await import('./server')
console.log(`Worker ${process.pid} started`)
log.info(`Worker ${process.pid} started`)
}
function requireEnv(key: string): string {
const val = Bun.env[key];
if (!val) {
log.error({ name: key }, "Missing required environment variable");
throw new Error(`Missing required environment variable: ${key}`)
};
return val;
}
function optionEnv(key: string, fallback: string = ""): string {
const val = Bun.env[key];
if (!val) {
log.warn({ name: key }, `Missing optional environmental variable, falling back to "${fallback}"`)
return fallback
};
return val;
}
+1 -2
View File
@@ -20,8 +20,7 @@ import {
Webflow,
} from "@blade-and-brawn/commerce";
import zipcodesUs from "zipcodes-us";
import pino from "pino";
import { env } from "./env";
import { env, log } from "./index";
import serverTiming from "@elysia/server-timing";
import jwt from "@elysia/jwt";