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.
- package/dist/Array.d.ts +127 -299
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +102 -62
- package/dist/Array.js.map +1 -1
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +5 -4
- package/dist/Cache.js.map +1 -1
- package/dist/Channel.d.ts +97 -11
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +72 -29
- package/dist/Channel.js.map +1 -1
- package/dist/Chunk.d.ts +54 -247
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +36 -67
- package/dist/Chunk.js.map +1 -1
- package/dist/Effect.d.ts +337 -437
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +118 -134
- package/dist/Effect.js.map +1 -1
- package/dist/Filter.d.ts +0 -33
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +0 -13
- package/dist/Filter.js.map +1 -1
- package/dist/HashMap.d.ts +15 -14
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +4 -4
- package/dist/HashMap.js.map +1 -1
- package/dist/Iterable.d.ts +40 -39
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +94 -22
- package/dist/Iterable.js.map +1 -1
- package/dist/Option.d.ts +22 -15
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +14 -7
- package/dist/Option.js.map +1 -1
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +1 -1
- package/dist/Pull.js.map +1 -1
- package/dist/Record.d.ts +24 -120
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +21 -41
- package/dist/Record.js.map +1 -1
- package/dist/Sink.d.ts +11 -11
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +53 -6
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +198 -386
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +103 -59
- package/dist/Stream.js.map +1 -1
- package/dist/Trie.d.ts +18 -17
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +5 -5
- package/dist/Trie.js.map +1 -1
- package/dist/TxChunk.d.ts +37 -37
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +3 -3
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +328 -0
- package/dist/TxDeferred.d.ts.map +1 -0
- package/dist/TxDeferred.js +196 -0
- package/dist/TxDeferred.js.map +1 -0
- package/dist/TxHashMap.d.ts +84 -83
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +24 -24
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +35 -35
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +14 -14
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +609 -0
- package/dist/TxPriorityQueue.d.ts.map +1 -0
- package/dist/TxPriorityQueue.js +415 -0
- package/dist/TxPriorityQueue.js.map +1 -0
- package/dist/TxPubSub.d.ts +585 -0
- package/dist/TxPubSub.d.ts.map +1 -0
- package/dist/TxPubSub.js +521 -0
- package/dist/TxPubSub.js.map +1 -0
- package/dist/TxQueue.d.ts +32 -32
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +26 -26
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +523 -0
- package/dist/TxReentrantLock.d.ts.map +1 -0
- package/dist/TxReentrantLock.js +504 -0
- package/dist/TxReentrantLock.js.map +1 -0
- package/dist/TxRef.d.ts +34 -34
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +21 -14
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +8 -8
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +7 -7
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +508 -0
- package/dist/TxSubscriptionRef.d.ts.map +1 -0
- package/dist/TxSubscriptionRef.js +293 -0
- package/dist/TxSubscriptionRef.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/effect.js +99 -42
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/hashMap.js +3 -2
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/trie.js +5 -4
- package/dist/internal/trie.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +0 -9
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +1 -1
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +1 -1
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +4 -4
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Sharding.js +1 -1
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/encoding/Sse.js +1 -1
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +1 -2
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +3 -3
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/package.json +1 -1
- package/src/Array.ts +190 -342
- package/src/Cache.ts +6 -5
- package/src/Channel.ts +506 -102
- package/src/Chunk.ts +81 -268
- package/src/Effect.ts +437 -518
- package/src/Filter.ts +0 -57
- package/src/HashMap.ts +15 -14
- package/src/Iterable.ts +105 -50
- package/src/Option.ts +30 -20
- package/src/Pull.ts +1 -1
- package/src/Record.ts +43 -152
- package/src/Sink.ts +75 -23
- package/src/Stream.ts +442 -502
- package/src/Trie.ts +18 -17
- package/src/TxChunk.ts +72 -53
- package/src/TxDeferred.ts +394 -0
- package/src/TxHashMap.ts +332 -285
- package/src/TxHashSet.ts +111 -116
- package/src/TxPriorityQueue.ts +767 -0
- package/src/TxPubSub.ts +789 -0
- package/src/TxQueue.ts +241 -251
- package/src/TxReentrantLock.ts +753 -0
- package/src/TxRef.ts +50 -38
- package/src/TxSemaphore.ts +29 -32
- package/src/TxSubscriptionRef.ts +639 -0
- package/src/index.ts +45 -0
- package/src/internal/effect.ts +368 -163
- package/src/internal/hashMap.ts +7 -5
- package/src/internal/trie.ts +16 -9
- package/src/unstable/ai/Tool.ts +0 -9
- package/src/unstable/cli/Command.ts +6 -4
- package/src/unstable/cluster/K8sHttpClient.ts +4 -4
- package/src/unstable/cluster/Sharding.ts +1 -1
- package/src/unstable/encoding/Sse.ts +1 -1
- package/src/unstable/rpc/RpcServer.ts +1 -7
- package/src/unstable/socket/Socket.ts +9 -11
package/dist/internal/effect.js
CHANGED
|
@@ -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,
|
|
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,
|
|
1227
|
-
|
|
1228
|
-
|
|
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) =>
|
|
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) =>
|
|
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,
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
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) =>
|
|
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) =>
|
|
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
|
|
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 =
|
|
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
|
|
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) =>
|
|
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,
|
|
1622
|
-
|
|
1623
|
-
|
|
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) =>
|
|
1654
|
+
export const onError = /*#__PURE__*/dual(2, (self, f) => onExitFilter(self, exitFilterCause, f));
|
|
1627
1655
|
/** @internal */
|
|
1628
|
-
export const onErrorIf = /*#__PURE__*/dual(3, (self,
|
|
1629
|
-
if (exit._tag !== "Failure")
|
|
1630
|
-
|
|
1631
|
-
}
|
|
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
|
|
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,
|
|
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,
|
|
1859
|
-
|
|
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,
|
|
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 =
|
|
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
|
-
|
|
1872
|
-
if (
|
|
1873
|
-
out.push(
|
|
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
|
// ----------------------------------------------------------------------------
|