API reference@evolu/commonSchedule › take

function take(
  n: Int0To100OrNonNegativeInt,
): <Output, Input>(
  schedule: Schedule<Output, Input>,
) => Schedule<Output, Input>;

Defined in: packages/common/src/Schedule.ts:781

Limits a schedule to a maximum number of steps.

After n steps, returns Err(Done<void>) (stop).

n uses Int0To100OrNonNegativeInt: pass 0 to 100 as a literal, or a validated NonNegativeInt for larger or dynamic values.

Limiting a schedule

import {
  assertErr,
  done,
  exponential,
  take,
  testCreateDeps,
} from "@evolu/common";

// Three exponential retries, then Done.
const step = take(3)(exponential("100ms"))(testCreateDeps());
step(undefined);
step(undefined);
step(undefined);
assertErr(step(undefined), done());