diff options
Diffstat (limited to 'u/process/env.ts')
-rw-r--r-- | u/process/env.ts | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/u/process/env.ts b/u/process/env.ts index 9a55488..76961c9 100644 --- a/u/process/env.ts +++ b/u/process/env.ts @@ -1,11 +1,13 @@ import { IOptional, Either, Optional, type IEither } from '@emprespresso/pengueno'; -export const getEnv = <V extends string>(name: string): IOptional<V> => Optional.from(<V>process.env[name]); +export const getEnv = <V extends string>(name: string): IOptional<V> => + Optional.from(<V>process.env[name]).filter((val) => val.trim() !== ''); export const getRequiredEnv = <V extends string>(name: string): IEither<Error, V> => - Either.fromFailable(() => getEnv<V>(name).get()).mapLeft( - () => new Error(`environment variable "${name}" is required D:`), - ); + getEnv<V>(name) + .map((envVal) => Either.right<Error, V>(<V>envVal)) + .orSome(() => Either.left<Error, V>(new Error(`environment variable "${name}" is required D:`))) + .get(); type ObjectFromList<T extends ReadonlyArray<string>, V = string> = { [K in T extends ReadonlyArray<infer U> ? U : never]: V; |