effect 3.14.21 → 3.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/cjs/Brand.js +8 -0
  2. package/dist/cjs/Brand.js.map +1 -1
  3. package/dist/cjs/Cause.js +8 -1
  4. package/dist/cjs/Cause.js.map +1 -1
  5. package/dist/cjs/ConfigError.js.map +1 -1
  6. package/dist/cjs/Effect.js.map +1 -1
  7. package/dist/cjs/Either.js +36 -1
  8. package/dist/cjs/Either.js.map +1 -1
  9. package/dist/cjs/Function.js +2 -2
  10. package/dist/cjs/Function.js.map +1 -1
  11. package/dist/cjs/Layer.js +8 -1
  12. package/dist/cjs/Layer.js.map +1 -1
  13. package/dist/cjs/MutableHashMap.js.map +1 -1
  14. package/dist/cjs/MutableList.js.map +1 -1
  15. package/dist/cjs/Pipeable.js +25 -1
  16. package/dist/cjs/Pipeable.js.map +1 -1
  17. package/dist/cjs/Record.js +26 -1
  18. package/dist/cjs/Record.js.map +1 -1
  19. package/dist/cjs/Schema.js +14 -5
  20. package/dist/cjs/Schema.js.map +1 -1
  21. package/dist/cjs/Stream.js +23 -2
  22. package/dist/cjs/Stream.js.map +1 -1
  23. package/dist/cjs/internal/configError.js +12 -0
  24. package/dist/cjs/internal/configError.js.map +1 -1
  25. package/dist/cjs/internal/core-effect.js +17 -1
  26. package/dist/cjs/internal/core-effect.js.map +1 -1
  27. package/dist/cjs/internal/stream.js +62 -2
  28. package/dist/cjs/internal/stream.js.map +1 -1
  29. package/dist/cjs/internal/version.js +1 -1
  30. package/dist/cjs/internal/version.js.map +1 -1
  31. package/dist/dts/Brand.d.ts +7 -0
  32. package/dist/dts/Brand.d.ts.map +1 -1
  33. package/dist/dts/Cause.d.ts +7 -0
  34. package/dist/dts/Cause.d.ts.map +1 -1
  35. package/dist/dts/ConfigError.d.ts +2 -0
  36. package/dist/dts/ConfigError.d.ts.map +1 -1
  37. package/dist/dts/Effect.d.ts +25 -363
  38. package/dist/dts/Effect.d.ts.map +1 -1
  39. package/dist/dts/Either.d.ts +35 -0
  40. package/dist/dts/Either.d.ts.map +1 -1
  41. package/dist/dts/Function.d.ts +2 -2
  42. package/dist/dts/Function.d.ts.map +1 -1
  43. package/dist/dts/Layer.d.ts +6 -0
  44. package/dist/dts/Layer.d.ts.map +1 -1
  45. package/dist/dts/MutableHashMap.d.ts +1 -1
  46. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  47. package/dist/dts/MutableList.d.ts +1 -1
  48. package/dist/dts/MutableList.d.ts.map +1 -1
  49. package/dist/dts/Pipeable.d.ts +30 -1
  50. package/dist/dts/Pipeable.d.ts.map +1 -1
  51. package/dist/dts/Record.d.ts +86 -0
  52. package/dist/dts/Record.d.ts.map +1 -1
  53. package/dist/dts/Schema.d.ts.map +1 -1
  54. package/dist/dts/Stream.d.ts +36 -0
  55. package/dist/dts/Stream.d.ts.map +1 -1
  56. package/dist/dts/Types.d.ts +11 -0
  57. package/dist/dts/Types.d.ts.map +1 -1
  58. package/dist/dts/internal/core-effect.d.ts.map +1 -1
  59. package/dist/dts/internal/stream.d.ts.map +1 -1
  60. package/dist/esm/Brand.js +8 -1
  61. package/dist/esm/Brand.js.map +1 -1
  62. package/dist/esm/Cause.js +7 -0
  63. package/dist/esm/Cause.js.map +1 -1
  64. package/dist/esm/ConfigError.js.map +1 -1
  65. package/dist/esm/Effect.js.map +1 -1
  66. package/dist/esm/Either.js +35 -0
  67. package/dist/esm/Either.js.map +1 -1
  68. package/dist/esm/Function.js +2 -2
  69. package/dist/esm/Function.js.map +1 -1
  70. package/dist/esm/Layer.js +6 -0
  71. package/dist/esm/Layer.js.map +1 -1
  72. package/dist/esm/MutableHashMap.js.map +1 -1
  73. package/dist/esm/MutableList.js.map +1 -1
  74. package/dist/esm/Pipeable.js +23 -0
  75. package/dist/esm/Pipeable.js.map +1 -1
  76. package/dist/esm/Record.js +25 -0
  77. package/dist/esm/Record.js.map +1 -1
  78. package/dist/esm/Schema.js +14 -5
  79. package/dist/esm/Schema.js.map +1 -1
  80. package/dist/esm/Stream.js +21 -0
  81. package/dist/esm/Stream.js.map +1 -1
  82. package/dist/esm/internal/configError.js +12 -0
  83. package/dist/esm/internal/configError.js.map +1 -1
  84. package/dist/esm/internal/core-effect.js +17 -1
  85. package/dist/esm/internal/core-effect.js.map +1 -1
  86. package/dist/esm/internal/stream.js +58 -0
  87. package/dist/esm/internal/stream.js.map +1 -1
  88. package/dist/esm/internal/version.js +1 -1
  89. package/dist/esm/internal/version.js.map +1 -1
  90. package/package.json +1 -1
  91. package/src/Brand.ts +9 -1
  92. package/src/Cause.ts +8 -0
  93. package/src/ConfigError.ts +2 -0
  94. package/src/Effect.ts +54 -377
  95. package/src/Either.ts +107 -0
  96. package/src/Function.ts +2 -2
  97. package/src/Layer.ts +11 -0
  98. package/src/MutableHashMap.ts +1 -1
  99. package/src/MutableList.ts +1 -1
  100. package/src/Pipeable.ts +51 -1
  101. package/src/Record.ts +120 -0
  102. package/src/Schema.ts +19 -8
  103. package/src/Stream.ts +40 -0
  104. package/src/Types.ts +13 -0
  105. package/src/internal/configError.ts +12 -0
  106. package/src/internal/core-effect.ts +70 -106
  107. package/src/internal/stream.ts +68 -0
  108. package/src/internal/version.ts +1 -1
@@ -237,21 +237,36 @@ export const catchSomeDefect = dual<
237
237
 
238
238
  /* @internal */
239
239
  export const catchTag = dual<
240
- <K extends (E extends { _tag: string } ? E["_tag"] : never), E, A1, E1, R1>(
241
- k: K,
242
- f: (e: Extract<E, { _tag: K }>) => Effect.Effect<A1, E1, R1>
243
- ) => <A, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A | A1, Exclude<E, { _tag: K }> | E1, R | R1>,
244
- <A, E, R, K extends (E extends { _tag: string } ? E["_tag"] : never), R1, E1, A1>(
240
+ <E, const K extends Arr.NonEmptyReadonlyArray<E extends { _tag: string } ? E["_tag"] : never>, A1, E1, R1>(
241
+ ...args: [...tags: K, f: (e: Extract<NoInfer<E>, { _tag: K[number] }>) => Effect.Effect<A1, E1, R1>]
242
+ ) => <A, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A | A1, Exclude<E, { _tag: K[number] }> | E1, R | R1>,
243
+ <A, E, R, const K extends Arr.NonEmptyReadonlyArray<E extends { _tag: string } ? E["_tag"] : never>, R1, E1, A1>(
245
244
  self: Effect.Effect<A, E, R>,
246
- k: K,
247
- f: (e: Extract<E, { _tag: K }>) => Effect.Effect<A1, E1, R1>
248
- ) => Effect.Effect<A | A1, Exclude<E, { _tag: K }> | E1, R | R1>
249
- >(3, <A, E, R, K extends (E extends { _tag: string } ? E["_tag"] : never), R1, E1, A1>(
250
- self: Effect.Effect<A, E, R>,
251
- k: K,
252
- f: (e: Extract<E, { _tag: K }>) => Effect.Effect<A1, E1, R1>
253
- ): Effect.Effect<A | A1, Exclude<E, { _tag: K }> | E1, R | R1> =>
254
- core.catchIf(self, Predicate.isTagged(k) as Predicate.Refinement<E, Extract<E, { _tag: K }>>, f) as any)
245
+ ...args: [...tags: K, f: (e: Extract<NoInfer<E>, { _tag: K[number] }>) => Effect.Effect<A1, E1, R1>]
246
+ ) => Effect.Effect<A | A1, Exclude<E, { _tag: K[number] }> | E1, R | R1>
247
+ >(
248
+ (args: any) => core.isEffect(args[0]),
249
+ <A, E, R, const K extends Arr.NonEmptyReadonlyArray<E extends { _tag: string } ? E["_tag"] : never>, R1, E1, A1>(
250
+ self: Effect.Effect<A, E, R>,
251
+ ...args: [...tags: K, f: (e: Extract<NoInfer<E>, { _tag: K[number] }>) => Effect.Effect<A1, E1, R1>]
252
+ ): Effect.Effect<A | A1, Exclude<E, { _tag: K[number] }> | E1, R | R1> => {
253
+ const f = args[args.length - 1] as any
254
+ let predicate: Predicate.Predicate<E>
255
+ if (args.length === 2) {
256
+ predicate = Predicate.isTagged(args[0] as string)
257
+ } else {
258
+ predicate = (e) => {
259
+ const tag = Predicate.hasProperty(e, "_tag") ? e["_tag"] : undefined
260
+ if (!tag) return false
261
+ for (let i = 0; i < args.length - 1; i++) {
262
+ if (args[i] === tag) return true
263
+ }
264
+ return false
265
+ }
266
+ }
267
+ return core.catchIf(self, predicate as Predicate.Refinement<E, Extract<E, { _tag: K[number] }>>, f) as any
268
+ }
269
+ )
255
270
 
256
271
  /** @internal */
257
272
  export const catchTags: {
@@ -505,24 +520,15 @@ export const filterMap = dual<
505
520
 
506
521
  /* @internal */
507
522
  export const filterOrDie: {
508
- <A, B extends A>(
509
- refinement: Predicate.Refinement<Types.NoInfer<A>, B>,
510
- orDieWith: (a: Types.NoInfer<A>) => unknown
523
+ <A, B extends A = A>(
524
+ predicate: Predicate.Predicate<Types.NoInfer<A>> | Predicate.Refinement<Types.NoInfer<A>, B>,
525
+ orDieWith: (a: Types.EqualsWith<A, B, A, Exclude<A, B>>) => unknown
511
526
  ): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<B, E, R>
512
- <A>(
513
- predicate: Predicate.Predicate<Types.NoInfer<A>>,
514
- orDieWith: (a: Types.NoInfer<A>) => unknown
515
- ): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
516
527
  <A, E, R, B extends A>(
517
528
  self: Effect.Effect<A, E, R>,
518
- refinement: Predicate.Refinement<A, B>,
519
- orDieWith: (a: A) => unknown
529
+ predicate: Predicate.Predicate<A> | Predicate.Refinement<A, B>,
530
+ orDieWith: (a: Types.EqualsWith<A, B, A, Exclude<A, B>>) => unknown
520
531
  ): Effect.Effect<B, E, R>
521
- <A, E, R>(
522
- self: Effect.Effect<A, E, R>,
523
- predicate: Predicate.Predicate<A>,
524
- orDieWith: (a: A) => unknown
525
- ): Effect.Effect<A, E, R>
526
532
  } = dual(
527
533
  3,
528
534
  <A, E, R>(
@@ -534,20 +540,15 @@ export const filterOrDie: {
534
540
 
535
541
  /* @internal */
536
542
  export const filterOrDieMessage: {
537
- <A, B extends A>(
538
- refinement: Predicate.Refinement<Types.NoInfer<A>, B>,
543
+ <A, B extends A = A>(
544
+ predicate: Predicate.Predicate<Types.NoInfer<A>> | Predicate.Refinement<Types.NoInfer<A>, B>,
539
545
  message: string
540
546
  ): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<B, E, R>
541
- <A>(
542
- predicate: Predicate.Predicate<Types.NoInfer<A>>,
543
- message: string
544
- ): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
545
- <A, E, R, B extends A>(
547
+ <A, E, R, B extends A = A>(
546
548
  self: Effect.Effect<A, E, R>,
547
- refinement: Predicate.Refinement<A, B>,
549
+ predicate: Predicate.Predicate<A> | Predicate.Refinement<A, B>,
548
550
  message: string
549
551
  ): Effect.Effect<B, E, R>
550
- <A, E, R>(self: Effect.Effect<A, E, R>, predicate: Predicate.Predicate<A>, message: string): Effect.Effect<A, E, R>
551
552
  } = dual(
552
553
  3,
553
554
  <A, E, R>(self: Effect.Effect<A, E, R>, predicate: Predicate.Predicate<A>, message: string): Effect.Effect<A, E, R> =>
@@ -556,24 +557,15 @@ export const filterOrDieMessage: {
556
557
 
557
558
  /* @internal */
558
559
  export const filterOrElse: {
559
- <A, B extends A, C, E2, R2>(
560
- refinement: Predicate.Refinement<Types.NoInfer<A>, B>,
561
- orElse: (a: Types.NoInfer<A>) => Effect.Effect<C, E2, R2>
560
+ <A, C, E2, R2, B extends A = A>(
561
+ predicate: Predicate.Predicate<Types.NoInfer<A>> | Predicate.Refinement<Types.NoInfer<A>, B>,
562
+ orElse: (a: Types.EqualsWith<A, B, Types.NoInfer<A>, Exclude<Types.NoInfer<A>, B>>) => Effect.Effect<C, E2, R2>
562
563
  ): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<B | C, E2 | E, R2 | R>
563
- <A, B, E2, R2>(
564
- predicate: Predicate.Predicate<Types.NoInfer<A>>,
565
- orElse: (a: Types.NoInfer<A>) => Effect.Effect<B, E2, R2>
566
- ): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A | B, E2 | E, R2 | R>
567
- <A, E, R, B extends A, C, E2, R2>(
564
+ <A, E, R, C, E2, R2, B extends A = A>(
568
565
  self: Effect.Effect<A, E, R>,
569
- refinement: Predicate.Refinement<A, B>,
570
- orElse: (a: A) => Effect.Effect<C, E2, R2>
566
+ predicate: Predicate.Predicate<A> | Predicate.Refinement<A, B>,
567
+ orElse: (a: Types.EqualsWith<A, B, A, Exclude<A, B>>) => Effect.Effect<C, E2, R2>
571
568
  ): Effect.Effect<B | C, E | E2, R | R2>
572
- <A, E, R, B, E2, R2>(
573
- self: Effect.Effect<A, E, R>,
574
- predicate: Predicate.Predicate<A>,
575
- orElse: (a: A) => Effect.Effect<B, E2, R2>
576
- ): Effect.Effect<A | B, E | E2, R | R2>
577
569
  } = dual(3, <A, E, R, B, E2, R2>(
578
570
  self: Effect.Effect<A, E, R>,
579
571
  predicate: Predicate.Predicate<A>,
@@ -586,71 +578,43 @@ export const filterOrElse: {
586
578
 
587
579
  /** @internal */
588
580
  export const liftPredicate = dual<
589
- {
590
- <A, B extends A, E>(
591
- refinement: Predicate.Refinement<Types.NoInfer<A>, B>,
592
- orFailWith: (a: Types.NoInfer<A>) => E
593
- ): (a: A) => Effect.Effect<B, E>
594
- <A, E>(
595
- predicate: Predicate.Predicate<Types.NoInfer<A>>,
596
- orFailWith: (a: Types.NoInfer<A>) => E
597
- ): (a: A) => Effect.Effect<A, E>
598
- },
599
- {
600
- <A, E, B extends A>(
601
- self: A,
602
- refinement: Predicate.Refinement<A, B>,
603
- orFailWith: (a: A) => E
604
- ): Effect.Effect<B, E>
605
- <A, E>(
606
- self: A,
607
- predicate: Predicate.Predicate<Types.NoInfer<A>>,
608
- orFailWith: (a: Types.NoInfer<A>) => E
609
- ): Effect.Effect<A, E>
610
- }
581
+ <T extends A, E, B extends T = T, A = T>(
582
+ predicate: Predicate.Refinement<T, B> | Predicate.Predicate<T>,
583
+ orFailWith: (a: Types.EqualsWith<T, B, A, Exclude<A, B>>) => E
584
+ ) => (a: A) => Effect.Effect<Types.EqualsWith<T, B, A, B>, E>,
585
+ <A, E, B extends A = A>(
586
+ self: A,
587
+ predicate: Predicate.Refinement<A, B> | Predicate.Predicate<A>,
588
+ orFailWith: (a: Types.EqualsWith<A, B, A, Exclude<A, B>>) => E
589
+ ) => Effect.Effect<B, E>
611
590
  >(
612
591
  3,
613
- <A, E>(
592
+ <A, E, B extends A = A>(
614
593
  self: A,
615
- predicate: Predicate.Predicate<Types.NoInfer<A>>,
616
- orFailWith: (a: Types.NoInfer<A>) => E
617
- ): Effect.Effect<A, E> => core.suspend(() => predicate(self) ? core.succeed(self) : core.fail(orFailWith(self)))
594
+ predicate: Predicate.Refinement<A, B> | Predicate.Predicate<A>,
595
+ orFailWith: (a: Types.EqualsWith<A, B, A, Exclude<A, B>>) => E
596
+ ): Effect.Effect<B, E> =>
597
+ core.suspend(() => predicate(self) ? core.succeed(self as B) : core.fail(orFailWith(self as any)))
618
598
  )
619
599
 
620
600
  /* @internal */
621
601
  export const filterOrFail: {
622
- <A, B extends A, E2>(
623
- refinement: Predicate.Refinement<Types.NoInfer<A>, B>,
624
- orFailWith: (a: Types.NoInfer<A>) => E2
602
+ <A, E2, B extends A = A>(
603
+ predicate: Predicate.Predicate<Types.NoInfer<A>> | Predicate.Refinement<Types.NoInfer<A>, B>,
604
+ orFailWith: (a: Types.EqualsWith<A, B, Types.NoInfer<A>, Exclude<Types.NoInfer<A>, B>>) => E2
625
605
  ): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<B, E2 | E, R>
626
- <A, E2>(
627
- predicate: Predicate.Predicate<Types.NoInfer<A>>,
628
- orFailWith: (a: Types.NoInfer<A>) => E2
629
- ): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E2 | E, R>
630
- <A, B extends A>(
631
- refinement: Predicate.Refinement<Types.NoInfer<A>, B>
632
- ): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<B, Cause.NoSuchElementException | E, R>
633
- <A>(
634
- predicate: Predicate.Predicate<Types.NoInfer<A>>
635
- ): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, Cause.NoSuchElementException | E, R>
636
- <A, E, R, B extends A, E2>(
606
+ <A, E, R, E2, B extends A = A>(
637
607
  self: Effect.Effect<A, E, R>,
638
- refinement: Predicate.Refinement<A, B>,
639
- orFailWith: (a: A) => E2
640
- ): Effect.Effect<B, E | E2, R>
641
- <A, E, R, E2>(
642
- self: Effect.Effect<A, E, R>,
643
- predicate: Predicate.Predicate<A>,
644
- orFailWith: (a: A) => E2
645
- ): Effect.Effect<A, E | E2, R>
646
- <A, E, R, B extends A>(
608
+ predicate: Predicate.Predicate<A> | Predicate.Refinement<A, B>,
609
+ orFailWith: (a: Types.EqualsWith<A, B, A, Exclude<A, B>>) => E2
610
+ ): Effect.Effect<B, E2 | E, R>
611
+ <A, B extends A = A>(
612
+ predicate: Predicate.Predicate<Types.NoInfer<A>> | Predicate.Refinement<Types.NoInfer<A>, B>
613
+ ): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<B, Cause.NoSuchElementException | E, R>
614
+ <A, E, R, B extends A = A>(
647
615
  self: Effect.Effect<A, E, R>,
648
- refinement: Predicate.Refinement<A, B>
616
+ predicate: Predicate.Predicate<A> | Predicate.Refinement<A, B>
649
617
  ): Effect.Effect<B, E | Cause.NoSuchElementException, R>
650
- <A, E, R>(
651
- self: Effect.Effect<A, E, R>,
652
- predicate: Predicate.Predicate<A>
653
- ): Effect.Effect<A, E | Cause.NoSuchElementException, R>
654
618
  } = dual((args) => core.isEffect(args[0]), <A, E, R, E2>(
655
619
  self: Effect.Effect<A, E, R>,
656
620
  predicate: Predicate.Predicate<A>,
@@ -7200,6 +7200,74 @@ export const transduce = dual<
7200
7200
  }
7201
7201
  )
7202
7202
 
7203
+ /** @internal */
7204
+ export const toAsyncIterableRuntime = dual<
7205
+ <A, XR>(
7206
+ runtime: Runtime.Runtime<XR>
7207
+ ) => <E, R extends XR>(self: Stream.Stream<A, E, R>) => AsyncIterable<A>,
7208
+ <A, E, XR, R extends XR>(
7209
+ self: Stream.Stream<A, E, R>,
7210
+ runtime: Runtime.Runtime<XR>
7211
+ ) => AsyncIterable<A>
7212
+ >(
7213
+ (args) => isStream(args[0]),
7214
+ <A, E, XR, R extends XR>(
7215
+ self: Stream.Stream<A, E, R>,
7216
+ runtime: Runtime.Runtime<XR>
7217
+ ): AsyncIterable<A> => {
7218
+ const runFork = Runtime.runFork(runtime)
7219
+ return {
7220
+ [Symbol.asyncIterator]() {
7221
+ let currentResolve: ((value: IteratorResult<A>) => void) | undefined = undefined
7222
+ let currentReject: ((reason: any) => void) | undefined = undefined
7223
+ let fiber: Fiber.RuntimeFiber<void, E> | undefined = undefined
7224
+ const latch = Effect.unsafeMakeLatch(false)
7225
+ return {
7226
+ next() {
7227
+ if (!fiber) {
7228
+ fiber = runFork(runForEach(self, (value) =>
7229
+ latch.whenOpen(Effect.sync(() => {
7230
+ latch.unsafeClose()
7231
+ currentResolve!({ done: false, value })
7232
+ currentResolve = currentReject = undefined
7233
+ }))))
7234
+ fiber.addObserver((exit) => {
7235
+ fiber = Effect.runFork(latch.whenOpen(Effect.sync(() => {
7236
+ if (exit._tag === "Failure") {
7237
+ currentReject!(Cause.squash(exit.cause))
7238
+ } else {
7239
+ currentResolve!({ done: true, value: void 0 })
7240
+ }
7241
+ currentResolve = currentReject = undefined
7242
+ })))
7243
+ })
7244
+ }
7245
+ return new Promise<IteratorResult<A>>((resolve, reject) => {
7246
+ currentResolve = resolve
7247
+ currentReject = reject
7248
+ latch.unsafeOpen()
7249
+ })
7250
+ },
7251
+ return() {
7252
+ if (!fiber) return Promise.resolve({ done: true, value: void 0 })
7253
+ return Effect.runPromise(Effect.as(Fiber.interrupt(fiber), { done: true, value: void 0 }))
7254
+ }
7255
+ }
7256
+ }
7257
+ }
7258
+ }
7259
+ )
7260
+
7261
+ /** @internal */
7262
+ export const toAsyncIterable = <A, E>(self: Stream.Stream<A, E>): AsyncIterable<A> =>
7263
+ toAsyncIterableRuntime(self, Runtime.defaultRuntime)
7264
+
7265
+ /** @internal */
7266
+ export const toAsyncIterableEffect = <A, E, R>(
7267
+ self: Stream.Stream<A, E, R>
7268
+ ): Effect.Effect<AsyncIterable<A>, never, R> =>
7269
+ Effect.map(Effect.runtime<R>(), (runtime) => toAsyncIterableRuntime(self, runtime))
7270
+
7203
7271
  /** @internal */
7204
7272
  export const unfold = <S, A>(s: S, f: (s: S) => Option.Option<readonly [A, S]>): Stream.Stream<A> =>
7205
7273
  unfoldChunk(s, (s) => pipe(f(s), Option.map(([a, s]) => [Chunk.of(a), s])))
@@ -1,4 +1,4 @@
1
- let moduleVersion = "3.14.21"
1
+ let moduleVersion = "3.15.0"
2
2
 
3
3
  export const getCurrentVersion = () => moduleVersion
4
4