Modifying Util for Runtime Requirement
Can someone help me modify this util so I can require the runtime instead of the layer?
export const EffectRequestHandler = <T extends Record<string, unknown>, R>(
handler: handler<T, R>,
requirements: Layer.Layer<R>,
): APIRoute<T> => {
return (context) => {
const program: Effect.Effect<Response, never, R> = handler(context).pipe(
Effect.catchTags({
// Handles Unauthorized errors
Unauthorized: (error) => {},
// Handles InvalidParams errors
InvalidParams: (error) => {},
// Handles InvalidBody errors
InvalidBody: (error) => {},
// Handles ParseError errors
ParseError: (error) => {},
// Handles Defect errors
Defect: (defect) => {},
}),
Effect.withSpan("request-handler"),
);
return Effect.runPromise(program.pipe(Effect.provide(requirements)));
};
};export const EffectRequestHandler = <T extends Record<string, unknown>, R>(
handler: handler<T, R>,
requirements: Layer.Layer<R>,
): APIRoute<T> => {
return (context) => {
const program: Effect.Effect<Response, never, R> = handler(context).pipe(
Effect.catchTags({
// Handles Unauthorized errors
Unauthorized: (error) => {},
// Handles InvalidParams errors
InvalidParams: (error) => {},
// Handles InvalidBody errors
InvalidBody: (error) => {},
// Handles ParseError errors
ParseError: (error) => {},
// Handles Defect errors
Defect: (defect) => {},
}),
Effect.withSpan("request-handler"),
);
return Effect.runPromise(program.pipe(Effect.provide(requirements)));
};
};