MCPcopy
hub / github.com/Effect-TS/effect / fromEffectTagged

Function fromEffectTagged

packages/effect/src/internal/dataSource.ts:244–285  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

242
243/** @internal */
244export 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 */
288export const never: RequestResolver.RequestResolver<never> = make(() => Effect.never).identified("Never")

Callers

nothing calls this directly

Calls 3

makeBatchedFunction · 0.70
completeFunction · 0.70
identifiedMethod · 0.65

Tested by

no test coverage detected