API reference@evolu/commonType › 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 value
  • Err<Done<D>> — completed normally with a done value
  • Err<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);
}