<A, E>(results: ReadonlyArray<NodeResult<A, E>>): ReadonlyArray<{
readonly node: string
readonly value: A
}>Successful per-node values, dropping the nodes that failed.
combinators
Source src/MultiNode.ts:894 lines
export const const combineSuccesses: <A, E>(
results: ReadonlyArray<NodeResult<A, E>>
) => ReadonlyArray<{
readonly node: string
readonly value: A
}>
Successful per-node values, dropping the nodes that failed.
combineSuccesses = <function (type parameter) A in <A, E>(results: ReadonlyArray<NodeResult<A, E>>): ReadonlyArray<{
readonly node: string;
readonly value: A;
}>
A, function (type parameter) E in <A, E>(results: ReadonlyArray<NodeResult<A, E>>): ReadonlyArray<{
readonly node: string;
readonly value: A;
}>
E>(
results: ReadonlyArray<NodeResult<A, E>>results: interface ReadonlyArray<T>ReadonlyArray<interface NodeResult<A, E = never>One node's outcome for a gathered query field — node-attributed success/failure.
NodeResult<function (type parameter) A in <A, E>(results: ReadonlyArray<NodeResult<A, E>>): ReadonlyArray<{
readonly node: string;
readonly value: A;
}>
A, function (type parameter) E in <A, E>(results: ReadonlyArray<NodeResult<A, E>>): ReadonlyArray<{
readonly node: string;
readonly value: A;
}>
E>>,
): interface ReadonlyArray<T>ReadonlyArray<{ readonly node: stringnode: string; readonly value: Avalue: function (type parameter) A in <A, E>(results: ReadonlyArray<NodeResult<A, E>>): ReadonlyArray<{
readonly node: string;
readonly value: A;
}>
A }> =>
results: ReadonlyArray<NodeResult<A, E>>results.ReadonlyArray<NodeResult<A, E>>.flatMap<{
node: string;
value: A;
}, undefined>(callback: (this: undefined, value: NodeResult<A, E>, index: number, array: NodeResult<A, E>[]) => {
node: string;
value: A;
} | readonly {
node: string;
value: A;
}[], thisArg?: undefined): {
node: string;
value: A;
}[]
Calls a defined callback function on each element of an array. Then, flattens the result into
a new array.
This is identical to a map followed by flat with depth 1.
flatMap((r: NodeResult<A, E>(parameter) r: {
node: string;
exit: Exit.Exit<A, E>;
}
r) => (import ExitExit.const isSuccess: <A, E>(
self: Exit.Exit<A, E>
) => self is Exit.Success<A, E>
Checks whether an Exit is a Success.
When to use
Use as a type guard to narrow Exit<A, E> to Success<A, E> and access the
value property.
Example (Narrowing to success)
import { Exit } from "effect"
const exit = Exit.succeed(42)
if (Exit.isSuccess(exit)) {
console.log(exit.value) // 42
}
isSuccess(r: NodeResult<A, E>(parameter) r: {
node: string;
exit: Exit.Exit<A, E>;
}
r.NodeResult<A, E>.exit: Exit.Exit<A, E>exit) ? [{ node: stringnode: r: NodeResult<A, E>(parameter) r: {
node: string;
exit: Exit.Exit<A, E>;
}
r.NodeResult<A, E>.node: stringnode, value: Avalue: r: NodeResult<A, E>(parameter) r: {
node: string;
exit: Exit.Exit<A, E>;
}
r.NodeResult<A, E>.exit: Exit.Success<A, E>(property) NodeResult<A, E>.exit: {
_tag: "Success";
value: A;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
exit.Success<A, E>.value: Avalue }] : []));
Referenced by 3 symbols