// no request dependencies
const BaseLive = pipe(...baseServices);
// services with optional request dependencies
const OptionalRequestLive = pipe(...requestOptionalServices, Layer.provideMerge(BaseLive));
const RequestRequiredLive = pipe(RequestRequiredServiceLive, ..., Layer.provideMerge(RequestScopedLive);
type RequestRequiredSuccess = Layer.Layer<Layer.Layer.Success<typeof RequestRequiredLive>>;
export function createRequestServiceLayer(
requestScopedValues?: Layer.Layer<RequestScopedValues>,
): typeof RequestScopedLive | RequestRequiredSuccess {
return requestScopedValues
? pipe(RequestRequiredLive, Layer.provide(requestScopedValues))
: RequestScopedLive;
}
// no request dependencies
const BaseLive = pipe(...baseServices);
// services with optional request dependencies
const OptionalRequestLive = pipe(...requestOptionalServices, Layer.provideMerge(BaseLive));
const RequestRequiredLive = pipe(RequestRequiredServiceLive, ..., Layer.provideMerge(RequestScopedLive);
type RequestRequiredSuccess = Layer.Layer<Layer.Layer.Success<typeof RequestRequiredLive>>;
export function createRequestServiceLayer(
requestScopedValues?: Layer.Layer<RequestScopedValues>,
): typeof RequestScopedLive | RequestRequiredSuccess {
return requestScopedValues
? pipe(RequestRequiredLive, Layer.provide(requestScopedValues))
: RequestScopedLive;
}