API reference › @evolu/common › Type › nextResult
function nextResult<ValueType, ErrorType, DoneType>(
valueType: ValueType,
errorType: ErrorType,
doneType: DoneType,
): UnionType<
[
ObjectType<{
ok: LiteralType<true>;
value: ValueType;
}>,
ObjectType<{
error: UnionType;
ok: LiteralType<false>;
}>,
]
>;
Defined in: packages/common/src/Type.ts:3743
Creates a Type for NextResult with three outcomes.
Validates results where the producer responds with:
Ok<A>— produced a valueErr<Done<D>>— completed normally with a done valueErr<E>— failed with an error
Example
const MyNextResult = nextResult(Item, MyError, Summary);
const validated = MyNextResult.fromUnknown(data);
if (!validated.ok) return validated;
const result = validated.value;
if (result.ok) {
console.log(result.value);
} else if (result.error.type === "Done") {
console.log("Done:", result.error.done);
} else {
console.error(result.error);
}