@foxxie/env
Version:
A utility for easily parsing env values.
1 lines • 2.33 kB
Source Map (JSON)
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Env, BooleanString, IntegerString } from './types';\n\nclass EnvParse {\n public static string<K extends keyof Env>(key: K): string {\n const value = process.env[key];\n if (value) return value;\n\n throw new Error(`Could not resolve \"${key}\" to string value.`);\n }\n\n public static int<K extends keyof Env>(key: K): number {\n const value = process.env[key];\n if (!value) throw new Error(`Could not resolve \"${key}\" to integer value.`);\n\n const parsed = parseInt(value, 10);\n if (!Number.isInteger(parsed)) throw new Error(`Could not resolve \"${key}\" to integer value.`);\n return parsed;\n }\n\n public static boolean<K extends keyof Env>(key: K): boolean {\n const value = process.env[key];\n if (value === 'true') return true;\n if (value === 'false') return false;\n throw new Error(`Could not resolve \"${key}\" to boolean value.`);\n }\n\n public static array<K extends keyof Env>(key: K, split = ' '): string[] {\n const value = process.env[key];\n if (!value) throw new Error(`Could not resolve \"${key}\" to array value.`);\n return value.split(split);\n }\n\n public static exists<K extends keyof Env>(...keys: K[]): boolean {\n return keys.every(k => {\n const value = process.env[k];\n return value !== undefined && value.length !== 0;\n });\n }\n}\n\nexport { EnvParse, Env, IntegerString, BooleanString };\n"],"mappings":"+EAEA,WAAe,OACG,QAA4B,EAAgB,CACtD,GAAM,GAAQ,QAAQ,IAAI,GAC1B,GAAI,EAAO,MAAO,GAElB,KAAM,IAAI,OAAM,sBAAsB,qBAAuB,CACjE,OAEc,KAAyB,EAAgB,CACnD,GAAM,GAAQ,QAAQ,IAAI,GAC1B,GAAI,CAAC,EAAO,KAAM,IAAI,OAAM,sBAAsB,sBAAwB,EAE1E,GAAM,GAAS,SAAS,EAAO,EAAE,EACjC,GAAI,CAAC,OAAO,UAAU,CAAM,EAAG,KAAM,IAAI,OAAM,sBAAsB,sBAAwB,EAC7F,MAAO,EACX,OAEc,SAA6B,EAAiB,CACxD,GAAM,GAAQ,QAAQ,IAAI,GAC1B,GAAI,IAAU,OAAQ,MAAO,GAC7B,GAAI,IAAU,QAAS,MAAO,GAC9B,KAAM,IAAI,OAAM,sBAAsB,sBAAwB,CAClE,OAEc,OAA2B,EAAQ,EAAQ,IAAe,CACpE,GAAM,GAAQ,QAAQ,IAAI,GAC1B,GAAI,CAAC,EAAO,KAAM,IAAI,OAAM,sBAAsB,oBAAsB,EACxE,MAAO,GAAM,MAAM,CAAK,CAC5B,OAEc,WAA+B,EAAoB,CAC7D,MAAO,GAAK,MAAM,GAAK,CACnB,GAAM,GAAQ,QAAQ,IAAI,GAC1B,MAAO,KAAU,QAAa,EAAM,SAAW,CACnD,CAAC,CACL,CACJ,EApCA","names":[]}