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)));
  };
};
Was this page helpful?