effect 4.0.0-beta.17 → 4.0.0-beta.19

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 (164) hide show
  1. package/dist/Array.d.ts +127 -299
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +102 -62
  4. package/dist/Array.js.map +1 -1
  5. package/dist/Cache.d.ts.map +1 -1
  6. package/dist/Cache.js +5 -4
  7. package/dist/Cache.js.map +1 -1
  8. package/dist/Channel.d.ts +97 -11
  9. package/dist/Channel.d.ts.map +1 -1
  10. package/dist/Channel.js +72 -29
  11. package/dist/Channel.js.map +1 -1
  12. package/dist/Chunk.d.ts +54 -247
  13. package/dist/Chunk.d.ts.map +1 -1
  14. package/dist/Chunk.js +36 -67
  15. package/dist/Chunk.js.map +1 -1
  16. package/dist/Effect.d.ts +337 -437
  17. package/dist/Effect.d.ts.map +1 -1
  18. package/dist/Effect.js +118 -134
  19. package/dist/Effect.js.map +1 -1
  20. package/dist/Filter.d.ts +0 -33
  21. package/dist/Filter.d.ts.map +1 -1
  22. package/dist/Filter.js +0 -13
  23. package/dist/Filter.js.map +1 -1
  24. package/dist/HashMap.d.ts +15 -14
  25. package/dist/HashMap.d.ts.map +1 -1
  26. package/dist/HashMap.js +4 -4
  27. package/dist/HashMap.js.map +1 -1
  28. package/dist/Iterable.d.ts +40 -39
  29. package/dist/Iterable.d.ts.map +1 -1
  30. package/dist/Iterable.js +94 -22
  31. package/dist/Iterable.js.map +1 -1
  32. package/dist/Option.d.ts +22 -15
  33. package/dist/Option.d.ts.map +1 -1
  34. package/dist/Option.js +14 -7
  35. package/dist/Option.js.map +1 -1
  36. package/dist/Pull.d.ts.map +1 -1
  37. package/dist/Pull.js +1 -1
  38. package/dist/Pull.js.map +1 -1
  39. package/dist/Record.d.ts +24 -120
  40. package/dist/Record.d.ts.map +1 -1
  41. package/dist/Record.js +21 -41
  42. package/dist/Record.js.map +1 -1
  43. package/dist/Sink.d.ts +11 -11
  44. package/dist/Sink.d.ts.map +1 -1
  45. package/dist/Sink.js +53 -6
  46. package/dist/Sink.js.map +1 -1
  47. package/dist/Stream.d.ts +198 -386
  48. package/dist/Stream.d.ts.map +1 -1
  49. package/dist/Stream.js +103 -59
  50. package/dist/Stream.js.map +1 -1
  51. package/dist/Trie.d.ts +18 -17
  52. package/dist/Trie.d.ts.map +1 -1
  53. package/dist/Trie.js +5 -5
  54. package/dist/Trie.js.map +1 -1
  55. package/dist/TxChunk.d.ts +37 -37
  56. package/dist/TxChunk.d.ts.map +1 -1
  57. package/dist/TxChunk.js +3 -3
  58. package/dist/TxChunk.js.map +1 -1
  59. package/dist/TxDeferred.d.ts +328 -0
  60. package/dist/TxDeferred.d.ts.map +1 -0
  61. package/dist/TxDeferred.js +196 -0
  62. package/dist/TxDeferred.js.map +1 -0
  63. package/dist/TxHashMap.d.ts +84 -83
  64. package/dist/TxHashMap.d.ts.map +1 -1
  65. package/dist/TxHashMap.js +24 -24
  66. package/dist/TxHashMap.js.map +1 -1
  67. package/dist/TxHashSet.d.ts +35 -35
  68. package/dist/TxHashSet.d.ts.map +1 -1
  69. package/dist/TxHashSet.js +14 -14
  70. package/dist/TxHashSet.js.map +1 -1
  71. package/dist/TxPriorityQueue.d.ts +609 -0
  72. package/dist/TxPriorityQueue.d.ts.map +1 -0
  73. package/dist/TxPriorityQueue.js +415 -0
  74. package/dist/TxPriorityQueue.js.map +1 -0
  75. package/dist/TxPubSub.d.ts +585 -0
  76. package/dist/TxPubSub.d.ts.map +1 -0
  77. package/dist/TxPubSub.js +521 -0
  78. package/dist/TxPubSub.js.map +1 -0
  79. package/dist/TxQueue.d.ts +32 -32
  80. package/dist/TxQueue.d.ts.map +1 -1
  81. package/dist/TxQueue.js +26 -26
  82. package/dist/TxQueue.js.map +1 -1
  83. package/dist/TxReentrantLock.d.ts +523 -0
  84. package/dist/TxReentrantLock.d.ts.map +1 -0
  85. package/dist/TxReentrantLock.js +504 -0
  86. package/dist/TxReentrantLock.js.map +1 -0
  87. package/dist/TxRef.d.ts +34 -34
  88. package/dist/TxRef.d.ts.map +1 -1
  89. package/dist/TxRef.js +21 -14
  90. package/dist/TxRef.js.map +1 -1
  91. package/dist/TxSemaphore.d.ts +8 -8
  92. package/dist/TxSemaphore.d.ts.map +1 -1
  93. package/dist/TxSemaphore.js +7 -7
  94. package/dist/TxSemaphore.js.map +1 -1
  95. package/dist/TxSubscriptionRef.d.ts +508 -0
  96. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  97. package/dist/TxSubscriptionRef.js +293 -0
  98. package/dist/TxSubscriptionRef.js.map +1 -0
  99. package/dist/index.d.ts +40 -0
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +40 -0
  102. package/dist/index.js.map +1 -1
  103. package/dist/internal/effect.js +99 -42
  104. package/dist/internal/effect.js.map +1 -1
  105. package/dist/internal/hashMap.js +3 -2
  106. package/dist/internal/hashMap.js.map +1 -1
  107. package/dist/internal/trie.js +5 -4
  108. package/dist/internal/trie.js.map +1 -1
  109. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  110. package/dist/unstable/ai/Tool.js +0 -9
  111. package/dist/unstable/ai/Tool.js.map +1 -1
  112. package/dist/unstable/cli/Command.d.ts +1 -1
  113. package/dist/unstable/cli/Command.d.ts.map +1 -1
  114. package/dist/unstable/cli/Command.js +1 -1
  115. package/dist/unstable/cli/Command.js.map +1 -1
  116. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  117. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  118. package/dist/unstable/cluster/Sharding.js +1 -1
  119. package/dist/unstable/cluster/Sharding.js.map +1 -1
  120. package/dist/unstable/encoding/Sse.js +1 -1
  121. package/dist/unstable/encoding/Sse.js.map +1 -1
  122. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  123. package/dist/unstable/rpc/RpcServer.js +1 -2
  124. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  125. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  126. package/dist/unstable/socket/Socket.js +3 -3
  127. package/dist/unstable/socket/Socket.js.map +1 -1
  128. package/package.json +1 -1
  129. package/src/Array.ts +190 -342
  130. package/src/Cache.ts +6 -5
  131. package/src/Channel.ts +506 -102
  132. package/src/Chunk.ts +81 -268
  133. package/src/Effect.ts +437 -518
  134. package/src/Filter.ts +0 -57
  135. package/src/HashMap.ts +15 -14
  136. package/src/Iterable.ts +105 -50
  137. package/src/Option.ts +30 -20
  138. package/src/Pull.ts +1 -1
  139. package/src/Record.ts +43 -152
  140. package/src/Sink.ts +75 -23
  141. package/src/Stream.ts +442 -502
  142. package/src/Trie.ts +18 -17
  143. package/src/TxChunk.ts +72 -53
  144. package/src/TxDeferred.ts +394 -0
  145. package/src/TxHashMap.ts +332 -285
  146. package/src/TxHashSet.ts +111 -116
  147. package/src/TxPriorityQueue.ts +767 -0
  148. package/src/TxPubSub.ts +789 -0
  149. package/src/TxQueue.ts +241 -251
  150. package/src/TxReentrantLock.ts +753 -0
  151. package/src/TxRef.ts +50 -38
  152. package/src/TxSemaphore.ts +29 -32
  153. package/src/TxSubscriptionRef.ts +639 -0
  154. package/src/index.ts +45 -0
  155. package/src/internal/effect.ts +368 -163
  156. package/src/internal/hashMap.ts +7 -5
  157. package/src/internal/trie.ts +16 -9
  158. package/src/unstable/ai/Tool.ts +0 -9
  159. package/src/unstable/cli/Command.ts +6 -4
  160. package/src/unstable/cluster/K8sHttpClient.ts +4 -4
  161. package/src/unstable/cluster/Sharding.ts +1 -1
  162. package/src/unstable/encoding/Sse.ts +1 -1
  163. package/src/unstable/rpc/RpcServer.ts +1 -7
  164. package/src/unstable/socket/Socket.ts +9 -11
@@ -1187,7 +1187,7 @@ export const zipWith = /*#__PURE__*/dual(args => isEffect(args[1]), (self, that,
1187
1187
  // filtering & conditionals
1188
1188
  // ----------------------------------------------------------------------------
1189
1189
  /* @internal */
1190
- export const filterOrFail = /*#__PURE__*/dual(args => isEffect(args[0]), (self, filter, orFailWith) => filterOrElse(self, filter, orFailWith ? a => fail(orFailWith(a)) : () => fail(new NoSuchElementError())));
1190
+ export const filterOrFail = /*#__PURE__*/dual(args => isEffect(args[0]), (self, predicate, orFailWith) => filterOrElse(self, predicate, orFailWith ? a => fail(orFailWith(a)) : () => fail(new NoSuchElementError())));
1191
1191
  /** @internal */
1192
1192
  export const when = /*#__PURE__*/dual(2, (self, condition) => flatMap(condition, pass => pass ? asSome(self) : succeedNone));
1193
1193
  // ----------------------------------------------------------------------------
@@ -1223,40 +1223,61 @@ const OnFailureProto = /*#__PURE__*/makePrimitiveProto({
1223
1223
  }
1224
1224
  });
1225
1225
  /** @internal */
1226
- export const catchCauseIf = /*#__PURE__*/dual(3, (self, filter, f) => catchCause(self, cause => {
1227
- const eb = Filter.apply(filter, cause);
1228
- return !Result.isFailure(eb) ? internalCall(() => f(eb.success, cause)) : failCause(eb.failure);
1226
+ export const catchCauseIf = /*#__PURE__*/dual(3, (self, predicate, f) => catchCause(self, cause => {
1227
+ if (!predicate(cause)) {
1228
+ return failCause(cause);
1229
+ }
1230
+ return internalCall(() => f(cause));
1231
+ }));
1232
+ /** @internal */
1233
+ export const catchCauseFilter = /*#__PURE__*/dual(3, (self, filter, f) => catchCause(self, cause => {
1234
+ const eb = filter(cause);
1235
+ return Result.isFailure(eb) ? failCause(eb.failure) : internalCall(() => f(eb.success, cause));
1229
1236
  }));
1230
1237
  /** @internal */
1231
- export const catch_ = /*#__PURE__*/dual(2, (self, f) => catchCauseIf(self, findError, e => f(e)));
1238
+ export const catch_ = /*#__PURE__*/dual(2, (self, f) => catchCauseFilter(self, findError, e => f(e)));
1232
1239
  /** @internal */
1233
1240
  export const catchNoSuchElement = self => matchEffect(self, {
1234
1241
  onFailure: error => isNoSuchElementError(error) ? succeedNone : fail(error),
1235
1242
  onSuccess: succeedSome
1236
1243
  });
1237
1244
  /** @internal */
1238
- export const catchDefect = /*#__PURE__*/dual(2, (self, f) => catchCauseIf(self, findDefect, f));
1245
+ export const catchDefect = /*#__PURE__*/dual(2, (self, f) => catchCauseFilter(self, findDefect, f));
1239
1246
  /** @internal */
1240
1247
  export const tapCause = /*#__PURE__*/dual(2, (self, f) => catchCause(self, cause => andThen(internalCall(() => f(cause)), failCause(cause))));
1241
1248
  /** @internal */
1242
- export const tapCauseIf = /*#__PURE__*/dual(3, (self, filter, f) => catchCauseIf(self, cause => {
1243
- const result = Filter.apply(filter, cause);
1244
- return Result.isFailure(result) ? Result.fail(cause) : result;
1245
- }, (failure, cause) => andThen(internalCall(() => f(failure, cause)), failCause(cause))));
1249
+ export const tapCauseIf = /*#__PURE__*/dual(3, (self, predicate, f) => catchCauseIf(self, predicate, cause => andThen(internalCall(() => f(cause)), failCause(cause))));
1250
+ /** @internal */
1251
+ export const tapCauseFilter = /*#__PURE__*/dual(3, (self, filter, f) => catchCause(self, cause => {
1252
+ const result = filter(cause);
1253
+ if (Result.isFailure(result)) {
1254
+ return failCause(cause);
1255
+ }
1256
+ return andThen(internalCall(() => f(result.success, cause)), failCause(cause));
1257
+ }));
1246
1258
  /** @internal */
1247
- export const tapError = /*#__PURE__*/dual(2, (self, f) => tapCauseIf(self, findError, e => f(e)));
1259
+ export const tapError = /*#__PURE__*/dual(2, (self, f) => tapCauseFilter(self, findError, e => f(e)));
1248
1260
  /** @internal */
1249
1261
  export const tapErrorTag = /*#__PURE__*/dual(3, (self, k, f) => {
1250
1262
  const predicate = Array.isArray(k) ? e => hasProperty(e, "_tag") && k.includes(e._tag) : isTagged(k);
1251
1263
  return tapError(self, error => predicate(error) ? f(error) : void_);
1252
1264
  });
1253
1265
  /** @internal */
1254
- export const tapDefect = /*#__PURE__*/dual(2, (self, f) => tapCauseIf(self, findDefect, _ => f(_)));
1266
+ export const tapDefect = /*#__PURE__*/dual(2, (self, f) => tapCauseFilter(self, findDefect, _ => f(_)));
1267
+ /** @internal */
1268
+ export const catchIf = /*#__PURE__*/dual(args => isEffect(args[0]), (self, predicate, f, orElse) => catchCause(self, cause => {
1269
+ const error = findError(cause);
1270
+ if (Result.isFailure(error)) return failCause(error.failure);
1271
+ if (!predicate(error.success)) {
1272
+ return orElse ? internalCall(() => orElse(error.success)) : failCause(cause);
1273
+ }
1274
+ return internalCall(() => f(error.success));
1275
+ }));
1255
1276
  /** @internal */
1256
- export const catchIf = /*#__PURE__*/dual(args => isEffect(args[0]), (self, filter, f, orElse) => catchCause(self, cause => {
1277
+ export const catchFilter = /*#__PURE__*/dual(args => isEffect(args[0]), (self, filter, f, orElse) => catchCause(self, cause => {
1257
1278
  const error = findError(cause);
1258
1279
  if (Result.isFailure(error)) return failCause(error.failure);
1259
- const result = Filter.apply(filter, error.success);
1280
+ const result = filter(error.success);
1260
1281
  if (Result.isFailure(result)) {
1261
1282
  return orElse ? internalCall(() => orElse(result.failure)) : failCause(cause);
1262
1283
  }
@@ -1270,7 +1291,7 @@ export const catchTag = /*#__PURE__*/dual(args => isEffect(args[0]), (self, k, f
1270
1291
  /** @internal */
1271
1292
  export const catchTags = /*#__PURE__*/dual(args => isEffect(args[0]), (self, cases, orElse) => {
1272
1293
  let keys;
1273
- return catchIf(self, e => {
1294
+ return catchFilter(self, e => {
1274
1295
  keys ??= Object.keys(cases);
1275
1296
  return hasProperty(e, "_tag") && isString(e["_tag"]) && keys.includes(e["_tag"]) ? Result.succeed(e) : Result.fail(e);
1276
1297
  }, e => internalCall(() => cases[e["_tag"]](e)), orElse);
@@ -1294,7 +1315,7 @@ export const catchReasons = /*#__PURE__*/dual(args => isEffect(args[0]), (self,
1294
1315
  });
1295
1316
  });
1296
1317
  /** @internal */
1297
- export const unwrapReason = /*#__PURE__*/dual(2, (self, errorTag) => catchIf(self, e => {
1318
+ export const unwrapReason = /*#__PURE__*/dual(2, (self, errorTag) => catchFilter(self, e => {
1298
1319
  if (isTagged(e, errorTag) && hasProperty(e, "reason")) {
1299
1320
  return Result.succeed(e.reason);
1300
1321
  }
@@ -1618,19 +1639,36 @@ export const onExit = /*#__PURE__*/dual(2, onExitPrimitive);
1618
1639
  /** @internal */
1619
1640
  export const ensuring = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, _ => finalizer));
1620
1641
  /** @internal */
1621
- export const onExitIf = /*#__PURE__*/dual(3, (self, filter, f) => onExit(self, exit => {
1622
- const pass = Filter.apply(filter, exit);
1623
- return Result.isFailure(pass) ? void_ : f(pass.success, exit);
1642
+ export const onExitIf = /*#__PURE__*/dual(3, (self, predicate, f) => onExit(self, exit => {
1643
+ if (!predicate(exit)) {
1644
+ return void_;
1645
+ }
1646
+ return f(exit);
1647
+ }));
1648
+ /** @internal */
1649
+ export const onExitFilter = /*#__PURE__*/dual(3, (self, filter, f) => onExit(self, exit => {
1650
+ const b = filter(exit);
1651
+ return Result.isFailure(b) ? void_ : f(b.success, exit);
1624
1652
  }));
1625
1653
  /** @internal */
1626
- export const onError = /*#__PURE__*/dual(2, (self, f) => onExitIf(self, exitFilterCause, f));
1654
+ export const onError = /*#__PURE__*/dual(2, (self, f) => onExitFilter(self, exitFilterCause, f));
1627
1655
  /** @internal */
1628
- export const onErrorIf = /*#__PURE__*/dual(3, (self, filter, f) => onExitIf(self, exit => {
1629
- if (exit._tag !== "Failure") return Result.fail(exit);
1630
- return Filter.apply(filter, exit.cause);
1631
- }, (eb, exit) => f(eb, exit.cause)));
1656
+ export const onErrorIf = /*#__PURE__*/dual(3, (self, predicate, f) => onExitIf(self, exit => {
1657
+ if (exit._tag !== "Failure") {
1658
+ return false;
1659
+ }
1660
+ return predicate(exit.cause);
1661
+ }, exit => f(exit.cause)));
1632
1662
  /** @internal */
1633
- export const onInterrupt = /*#__PURE__*/dual(2, (self, finalizer) => onErrorIf(causeFilterInterruptors, finalizer)(self));
1663
+ export const onErrorFilter = /*#__PURE__*/dual(3, (self, filter, f) => onExit(self, exit => {
1664
+ if (exit._tag !== "Failure") {
1665
+ return void_;
1666
+ }
1667
+ const result = filter(exit.cause);
1668
+ return Result.isFailure(result) ? void_ : f(result.success, exit.cause);
1669
+ }));
1670
+ /** @internal */
1671
+ export const onInterrupt = /*#__PURE__*/dual(2, (self, finalizer) => onErrorFilter(causeFilterInterruptors, finalizer)(self));
1634
1672
  /** @internal */
1635
1673
  export const acquireUseRelease = (acquire, use, release) => uninterruptibleMask(restore => flatMap(acquire, a => onExitPrimitive(restore(use(a)), exit => release(a, exit), true)));
1636
1674
  // ----------------------------------------------------------------------------
@@ -1733,9 +1771,9 @@ export const all = (arg, options) => {
1733
1771
  });
1734
1772
  };
1735
1773
  /** @internal */
1736
- export const partition = /*#__PURE__*/dual(args => isIterable(args[0]) && !isEffect(args[0]), (elements, f, options) => map(forEach(elements, (a, i) => result(f(a, i)), options), results => Arr.partitionMap(results, identity)));
1774
+ export const partition = /*#__PURE__*/dual(args => isIterable(args[0]) && !isEffect(args[0]), (elements, filter, options) => map(forEach(elements, filter, options), results => Arr.partition(results, identity)));
1737
1775
  /** @internal */
1738
- export const validate = /*#__PURE__*/dual(args => isIterable(args[0]) && !isEffect(args[0]), (elements, f, options) => flatMap(partition(elements, f, {
1776
+ export const validate = /*#__PURE__*/dual(args => isIterable(args[0]) && !isEffect(args[0]), (elements, f, options) => flatMap(partition(elements, (a, i) => result(f(a, i)), {
1739
1777
  concurrency: options?.concurrency
1740
1778
  }), ([excluded, satisfying]) => {
1741
1779
  if (Arr.isArrayNonEmpty(excluded)) {
@@ -1855,30 +1893,26 @@ const forEachSequential = (iterable, f, options) => suspend(() => {
1855
1893
  }), out);
1856
1894
  });
1857
1895
  /* @internal */
1858
- export const filterOrElse = /*#__PURE__*/dual(3, (self, filter, orElse) => flatMap(self, a => {
1859
- const result = Filter.apply(filter, a);
1896
+ export const filterOrElse = /*#__PURE__*/dual(3, (self, predicate, orElse) => flatMap(self, a => predicate(a) ? succeed(a) : orElse(a)));
1897
+ /** @internal */
1898
+ export const filterMapOrElse = /*#__PURE__*/dual(3, (self, filter, orElse) => flatMap(self, a => {
1899
+ const result = filter(a);
1860
1900
  return Result.isFailure(result) ? orElse(result.failure) : succeed(result.success);
1861
1901
  }));
1902
+ /* @internal */
1903
+ export const filterMapOrFail = /*#__PURE__*/dual(args => isEffect(args[0]), (self, filter, orFailWith) => filterMapOrElse(self, filter, orFailWith ? x => fail(orFailWith(x)) : () => fail(new NoSuchElementError())));
1862
1904
  /** @internal */
1863
- export const filter = /*#__PURE__*/dual(args => isIterable(args[0]) && !isEffect(args[0]), (elements, filter, options) => suspend(() => {
1905
+ export const filter = /*#__PURE__*/dual(args => isIterable(args[0]) && !isEffect(args[0]), (elements, predicate, options) => suspend(() => {
1864
1906
  const out = [];
1865
1907
  return as(forEach(elements, (a, i) => {
1866
- const result = filter(a, i);
1908
+ const result = predicate(a, i);
1867
1909
  if (typeof result === "boolean") {
1868
1910
  if (result) out.push(a);
1869
1911
  return void_;
1870
1912
  }
1871
- if (!isEffect(result)) {
1872
- if (!Result.isFailure(result)) {
1873
- out.push(result.success);
1874
- }
1875
- return void_;
1876
- }
1877
- return map(result, r => {
1878
- if (typeof r === "boolean") {
1879
- if (r) out.push(a);
1880
- } else if (!Result.isFailure(r)) {
1881
- out.push(r.success);
1913
+ return map(result, keep => {
1914
+ if (keep) {
1915
+ out.push(a);
1882
1916
  }
1883
1917
  });
1884
1918
  }, {
@@ -1886,6 +1920,29 @@ export const filter = /*#__PURE__*/dual(args => isIterable(args[0]) && !isEffect
1886
1920
  concurrency: options?.concurrency
1887
1921
  }), out);
1888
1922
  }));
1923
+ /** @internal */
1924
+ export const filterMap = /*#__PURE__*/dual(args => isIterable(args[0]) && !isEffect(args[0]), (elements, filter) => suspend(() => {
1925
+ const out = [];
1926
+ for (const a of elements) {
1927
+ const result = filter(a);
1928
+ if (Result.isSuccess(result)) {
1929
+ out.push(result.success);
1930
+ }
1931
+ }
1932
+ return succeed(out);
1933
+ }));
1934
+ /** @internal */
1935
+ export const filterMapEffect = /*#__PURE__*/dual(args => isIterable(args[0]) && !isEffect(args[0]), (elements, filter, options) => suspend(() => {
1936
+ const out = [];
1937
+ return as(forEach(elements, a => map(filter(a), result => {
1938
+ if (Result.isSuccess(result)) {
1939
+ out.push(result.success);
1940
+ }
1941
+ }), {
1942
+ discard: true,
1943
+ concurrency: options?.concurrency
1944
+ }), out);
1945
+ }));
1889
1946
  // ----------------------------------------------------------------------------
1890
1947
  // do notation
1891
1948
  // ----------------------------------------------------------------------------