From dc4ac7742690f8f2bd759d57108ac4455e717fe9 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sun, 20 Jul 2025 13:03:39 -0700 Subject: Mount src directory from path on host running worker container --- u/process/env.ts | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'u/process/env.ts') diff --git a/u/process/env.ts b/u/process/env.ts index 88fb490..f59fadf 100644 --- a/u/process/env.ts +++ b/u/process/env.ts @@ -1,27 +1,25 @@ -import { IOptional, Either, Optional, type IEither } from '@emprespresso/pengueno'; +import { IOptional, Either, Optional, type IEither, type ObjectFromList } from '@emprespresso/pengueno'; -export const getEnv = (name: string): IOptional => Optional.from(process.env[name]); +// type safe environment variables -export const getRequiredEnv = (name: string): IEither => - Either.fromFailable(() => getEnv(name).get()).mapLeft( +export const getEnv = (name: string): IOptional => Optional.from(process.env[name]); + +export const getRequiredEnv = (name: V): IEither => + Either.fromFailable(() => getEnv(name).get()).mapLeft( () => new Error(`environment variable "${name}" is required D:`), ); -type ObjectFromList, V = string> = { - [K in T extends ReadonlyArray ? U : never]: V; -}; - -export const getRequiredEnvVars = (vars: Array) => { +export const getRequiredEnvVars = (vars: Array): IEither> => { type Environment = ObjectFromList; const emptyEnvironment = Either.right({}); - const addTo = (env: Environment, key: V) => (val: string) => + const addTo = (env: Environment, key: V, val: string) => { ...env, [key]: val, }; - return Either.joinRight( - vars, - (envVar: V, environment: Environment) => getRequiredEnv(envVar).mapRight(addTo(environment, envVar)), + return vars.reduce( + (environment, key) => + environment.joinRight(getRequiredEnv(key), (value, environment) => addTo(environment, key, value)), emptyEnvironment, ); }; -- cgit v1.2.3-70-g09d2