@ixily/activ
Version:
Alpha Capture Trade Idea Verification. Blockchain ownership proven trade ideas and strategies.
72 lines (59 loc) • 1.72 kB
text/typescript
import { placeholderError } from '../../tools/chunks/helpers.tool'
export interface ActivV4Env {
envLoaded: boolean
isBrowser: boolean
isNode: boolean
isProd: boolean
isDev: boolean
deactivatePagination: boolean
// default auth for price/asset search providers
// defaultAuthBinanceApiKey: string
// defaultAuthBinanceApiSecret: string
deactivateLogs?: boolean
}
const state: ActivV4Env = {
envLoaded: false,
isBrowser: false,
isNode: false,
isProd: false,
isDev: false,
deactivatePagination: false,
// defaultAuthBinanceApiKey: '',
// defaultAuthBinanceApiSecret: '',
}
const loadEnv = () => {
state.isNode =
typeof process !== 'undefined' &&
process.versions != null &&
process.versions.node != null
state.isBrowser = !state.isNode
state.isDev = state.isNode
? process.env.NODE_ENV === 'development'
: process.env.BROWSER_ENV === 'development'
state.isProd = !state.isDev
state.deactivatePagination = process.env.DEACTIVATE_PAGINATION === 'true'
// default auth for price/asset search providers
// state.defaultAuthBinanceApiKey =
// process.env.DEFAULT_AUTH_BINANCE_API_KEY ||
// placeholderError('DEFAULT_AUTH_BINANCE_API_KEY is not set', '')
// state.defaultAuthBinanceApiSecret =
// process.env.DEFAULT_AUTH_BINANCE_API_SECRET ||
// placeholderError('DEFAULT_AUTH_BINANCE_API_SECRET is not set', '')
state.envLoaded = true
}
const loadedEnv = (): ActivV4Env => {
if (!state.envLoaded) {
loadEnv()
}
return state
}
const set = <T extends keyof ActivV4Env>(prop: T, value: ActivV4Env[T]) => {
state[prop] = value
}
const get = <T extends keyof ActivV4Env>(prop: T): ActivV4Env[T] =>
loadedEnv()[prop]
export const EnvModule = {
loadEnv,
set,
get,
}