Compare commits

...

3 Commits

Author SHA1 Message Date
4bcec23c22 Merge branch 'main' into probablycorey/ai-project-structure
Some checks failed
CI / test (pull_request) Has been cancelled
2026-03-09 23:03:25 +00:00
ff98255588 Merge pull request 'Refactor config structure for better readability' (#8) from probablycorey/split-config-type into main
Some checks are pending
CI / test (push) Waiting to run
Reviewed-on: #8
2026-03-09 22:59:48 +00:00
85eea2f4ef Refactor config structure for better readability
Some checks failed
CI / test (pull_request) Has been cancelled
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 <noreply@anthropic.com>
2026-03-09 15:56:30 -07:00

View File

@ -1,33 +1,34 @@
export const getConfig = <K extends keyof typeof config>(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<string, string>
}
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<string, string>,
prod: {
probablycorey: "corey",
defunkt: "defunkt",
} as Record<string, string>,
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<K extends keyof Config>(key: K) {
return config[key]
}