Move env and log into index
This commit is contained in:
@@ -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({
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user