From 85eea2f4ef34ac7f739079a170aebe1a6017f30f Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Mon, 9 Mar 2026 15:56:30 -0700 Subject: [PATCH] Refactor config structure for better readability Split nested dev/prod config object into a Config type with separate devConfig and prodConfig objects. This makes it clearer which values apply to which environment and ensures both configs match the type. Co-Authored-By: Claude Haiku 4.5 --- bun.lock | 1 + packages/spike/src/config.ts | 57 ++++++++++++++++++------------------ 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/bun.lock b/bun.lock index 53c75eb..57d8b1d 100644 --- a/bun.lock +++ b/bun.lock @@ -1,5 +1,6 @@ { "lockfileVersion": 1, + "configVersion": 0, "workspaces": { "": { "name": "workshop", diff --git a/packages/spike/src/config.ts b/packages/spike/src/config.ts index e515116..98fa81a 100644 --- a/packages/spike/src/config.ts +++ b/packages/spike/src/config.ts @@ -1,33 +1,34 @@ -export const getConfig = (key: K) => { - const env = process.env.NODE_ENV === "production" ? "prod" : "dev" - const value = config[key][env] - return value as (typeof config)[K]["dev"] +type Config = { + dbPath: string + channelId: string + discordClientId: string + dataDir: string + giteaToDiscordUserMappings: Record } -const config = { - dbPath: { - dev: ".//local-spike.db", - prod: `${process.env.DATA_DIR}/spike.db`, - }, - channelId: { - dev: "1384275245174620370", - prod: "1436392275696554055", - }, - discordClientId: { - dev: "1384271480119885977", - prod: "1382067546651365416", - }, - dataDir: { - dev: "/Users/corey/code/tmp/data", - prod: "/var/data", - }, +const devConfig: Config = { + dbPath: ".//local-spike.db", + channelId: "1384275245174620370", + discordClientId: "1384271480119885977", + dataDir: "/Users/corey/code/tmp/data", giteaToDiscordUserMappings: { - dev: { - probablycorey: "corey", - } as Record, - prod: { - probablycorey: "corey", - defunkt: "defunkt", - } as Record, + probablycorey: "corey", }, } + +const prodConfig: Config = { + dbPath: `${process.env.DATA_DIR}/spike.db`, + channelId: "1436392275696554055", + discordClientId: "1382067546651365416", + dataDir: "/var/data", + giteaToDiscordUserMappings: { + probablycorey: "corey", + defunkt: "defunkt", + }, +} + +const config = process.env.NODE_ENV === "production" ? prodConfig : devConfig + +export function getConfig(key: K) { + return config[key] +} -- 2.50.1