summaryrefslogtreecommitdiff
path: root/u/process/env.ts
diff options
context:
space:
mode:
Diffstat (limited to 'u/process/env.ts')
-rw-r--r--u/process/env.ts10
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;