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.ts53
1 files changed, 23 insertions, 30 deletions
diff --git a/u/process/env.ts b/u/process/env.ts
index 5ba4189..1e4fd32 100644
--- a/u/process/env.ts
+++ b/u/process/env.ts
@@ -1,37 +1,30 @@
-import { Either, type IEither } from "@emprespresso/pengueno";
+import { Either, type IEither } from '@emprespresso/pengueno';
export const getRequiredEnv = <V extends string>(name: V): IEither<Error, V> =>
- Either.fromFailable<Error, V | undefined>(
- () => Deno.env.get(name) as V | undefined,
- ) // could throw when no permission.
- .flatMap(
- (v) =>
- (v && Either.right(v)) ||
- Either.left(new Error(`environment variable "${name}" is required D:`)),
- );
+ Either.fromFailable<Error, V | undefined>(() => process.env[name] as V | undefined) // could throw when no permission.
+ .flatMap(
+ (v) => (v && Either.right(v)) || Either.left(new Error(`environment variable "${name}" is required D:`)),
+ );
type ObjectFromList<T extends ReadonlyArray<string>, V = string> = {
- [K in T extends ReadonlyArray<infer U> ? U : never]: V;
+ [K in T extends ReadonlyArray<infer U> ? U : never]: V;
};
export const getRequiredEnvVars = <V extends string>(vars: ReadonlyArray<V>) =>
- vars
- .map((envVar) => [envVar, getRequiredEnv(envVar)] as [V, IEither<Error, V>])
- .reduce(
- (
- acc: IEither<Error, ObjectFromList<typeof vars>>,
- x: [V, IEither<Error, V>],
- ) => {
- const [envVar, eitherVal] = x;
- return acc.flatMap((args) => {
- return eitherVal.mapRight(
- (envValue) =>
- ({
- ...args,
- [envVar]: envValue,
- }) as ObjectFromList<typeof vars>,
- );
- });
- },
- Either.right({} as ObjectFromList<typeof vars>),
- );
+ vars
+ .map((envVar) => [envVar, getRequiredEnv(envVar)] as [V, IEither<Error, V>])
+ .reduce(
+ (acc: IEither<Error, ObjectFromList<typeof vars>>, x: [V, IEither<Error, V>]) => {
+ const [envVar, eitherVal] = x;
+ return acc.flatMap((args) => {
+ return eitherVal.mapRight(
+ (envValue) =>
+ ({
+ ...args,
+ [envVar]: envValue,
+ }) as ObjectFromList<typeof vars>,
+ );
+ });
+ },
+ Either.right({} as ObjectFromList<typeof vars>),
+ );