Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 96818x 96818x 1x 1x 96818x 96818x 96818x 96818x 96818x 96818x 96818x | import { getMainConfig } from './getGreenDotConfigs'
import { error } from '../error'
import { parseStringAsBoolean } from 'topkat-utils'
type EnvType = {
env: Env
isProd: boolean
isTest: boolean
}
export const env = new Proxy({} as EnvType, {
get(o, p: keyof EnvType) {
return getEnv(p)
}
})
function getEnv(prop: keyof EnvType) {
const mainConf = getMainConfig(true)
if (prop === 'env') return (mainConf?.env || process.env.NODE_ENV) as Env
else {
const {
isProdEnv = process.env.IS_PROD_ENV ? parseStringAsBoolean(process.env.IS_PROD_ENV) : undefined,
isTestEnv = process.env.IS_TEST_ENV ? parseStringAsBoolean(process.env.IS_TEST_ENV) : undefined
} = mainConf || {}
if (typeof isProdEnv !== 'boolean') {
throw error.serverError(`Env variable not found please report the issue`, {
processEnvIsProd: process.env?.IS_PROD_ENV, processEnvIsTest: process.env?.IS_TEST_ENV, mainConfEnv: mainConf?.env
})
}
return ({
isProd: isProdEnv,
isTest: isTestEnv
} satisfies Omit<EnvType, 'env'>)[prop]
}
} |