()
| 242 | |
| 243 | /** @internal */ |
| 244 | export const fromEffectTagged = < |
| 245 | A extends Request.Request<any, any> & { |
| 246 | readonly _tag: string |
| 247 | } |
| 248 | >() => |
| 249 | < |
| 250 | Fns extends { |
| 251 | readonly [Tag in A["_tag"]]: [Extract<A, { readonly _tag: Tag }>] extends [infer Req] ? |
| 252 | Req extends Request.Request<infer ReqA, infer ReqE> ? |
| 253 | (requests: Array<Req>) => Effect.Effect<Iterable<ReqA>, ReqE, any> |
| 254 | : never |
| 255 | : never |
| 256 | } |
| 257 | >( |
| 258 | fns: Fns |
| 259 | ): RequestResolver.RequestResolver< |
| 260 | A, |
| 261 | ReturnType<Fns[keyof Fns]> extends Effect.Effect<infer _A, infer _E, infer R> ? R : never |
| 262 | > => |
| 263 | makeBatched<A, any>((requests: RA.NonEmptyArray<A>) => { |
| 264 | const grouped: Record<string, Array<A>> = {} |
| 265 | const tags: Array<A["_tag"]> = [] |
| 266 | for (let i = 0, len = requests.length; i < len; i++) { |
| 267 | if (tags.includes(requests[i]._tag)) { |
| 268 | grouped[requests[i]._tag].push(requests[i]) |
| 269 | } else { |
| 270 | grouped[requests[i]._tag] = [requests[i]] |
| 271 | tags.push(requests[i]._tag) |
| 272 | } |
| 273 | } |
| 274 | return Effect.forEach( |
| 275 | tags, |
| 276 | (tag) => |
| 277 | Effect.matchCauseEffect((fns[tag] as any)(grouped[tag]) as Effect.Effect<Array<any>, unknown, unknown>, { |
| 278 | onFailure: (cause) => |
| 279 | Effect.forEach(grouped[tag], (req) => complete(req, core.exitFail(cause) as any), { discard: true }), |
| 280 | onSuccess: (res) => |
| 281 | Effect.forEach(grouped[tag], (req, i) => complete(req, core.exitSucceed(res[i]) as any), { discard: true }) |
| 282 | }), |
| 283 | { concurrency: "unbounded", discard: true } |
| 284 | ) |
| 285 | }).identified("FromEffectTagged", fns) |
| 286 | |
| 287 | /** @internal */ |
| 288 | export const never: RequestResolver.RequestResolver<never> = make(() => Effect.never).identified("Never") |
nothing calls this directly
no test coverage detected