# Data flow — dubzzz/fast-check

> Canonical page: https://codevetter.com/unpack/fast-check/data-flow

# Data flow — dubzzz/fast-check

Scanned commit ecf7193810d1057253808105444e147d948051a1 (2026-10-01). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Input data enters through arbitrary factories, predicates, and execution parameters. Generated values carry shrink context, while runner-owned state records execution outcomes and replay coordinates. Plugins transform generation and predicate execution before results reach reporting. Worker execution introduces message serialization or RNG-state reconstruction as an additional boundary.
- asyncProperty splits its arguments into arbitraries and predicate, wraps each arbitrary in AlwaysShrinkableArbitrary, and converts the resulting tuple into positional predicate arguments. — [packages/fast-check/src/check/property/AsyncProperty.ts#L13-L22](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/property/AsyncProperty.ts#L13-L22)
- check overlays local parameters on readConfigureGlobal; qualification defaults to 100 runs, 100 skips per run, empty examples/path, and xorshift128plus, normalizing supplied seeds to a 32-bit representation. — [packages/fast-check/src/check/runner/Runner.ts#L92-L98](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/Runner.ts#L92-L98) [packages/fast-check/src/check/runner/configuration/QualifiedParameters.ts#L34-L53](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/configuration/QualifiedParameters.ts#L34-L53) [packages/fast-check/src/check/runner/configuration/QualifiedParameters.ts#L84-L115](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/configuration/QualifiedParameters.ts#L84-L115)
- Each check creates a symbol-keyed plugin Map; global plugin builders precede local builders, and reverse-order decoration makes earlier plugins wrap later generation/run behavior. — [packages/fast-check/src/check/runner/Runner.ts#L100-L124](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/Runner.ts#L100-L124) [packages/fast-check/src/check/runner/configuration/GlobalPlugins.ts#L5-L18](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/configuration/GlobalPlugins.ts#L5-L18)
- toss yields supplied examples before random cases, jumping the RNG before each generated case; PropertyImplem converts run IDs to bias frequency and protects undefined shrink context with a placeholder. — [packages/fast-check/src/check/runner/Tosser.ts#L12-L32](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/Tosser.ts#L12-L32) [packages/fast-check/src/check/property/_internals/PropertyImplem.ts#L36-L48](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/property/_internals/PropertyImplem.ts#L36-L48)
- Value stores value_ and context and optionally exposes clone-aware value access; RunnerIterator passes value_ to the predicate and retains the associated Value for subsequent shrinking. — [packages/fast-check/src/check/arbitrary/definition/Value.ts#L48-L72](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/arbitrary/definition/Value.ts#L48-L72) [packages/fast-check/src/check/runner/RunnerIterator.ts#L33-L52](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/RunnerIterator.ts#L33-L52)
- Predicate true/undefined becomes success, thrown PreconditionFailure becomes skip/interruption, and other errors become PropertyFailure; failed outcomes replace the active iterator with shrinks, while skips replenish the initial-run budget. — [packages/fast-check/src/check/property/_internals/PropertyImplem.ts#L14-L22](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/property/_internals/PropertyImplem.ts#L14-L22) [packages/fast-check/src/check/property/_internals/PropertyImplem.ts#L51-L60](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/property/_internals/PropertyImplem.ts#L51-L60) [packages/fast-check/src/check/runner/RunnerIterator.ts#L42-L67](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/RunnerIterator.ts#L42-L67) [packages/fast-check/src/check/runner/SourceValuesIterator.ts#L15-L24](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/SourceValuesIterator.ts#L15-L24)
- RunExecution converts accumulated state into RunDetails containing seed, counterexamplePath, errorInstance, and configuration; assert then calls a custom reporter or formats the counterexample, shrink count, and reproduction parameters. — [packages/fast-check/src/check/runner/reporter/RunExecution.ts#L102-L130](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/reporter/RunExecution.ts#L102-L130) [packages/fast-check/src/check/runner/Runner.ts#L156-L158](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/Runner.ts#L156-L158) [packages/fast-check/src/check/runner/utils/RunDetailsFormatter.ts#L110-L119](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/utils/RunDetailsFormatter.ts#L110-L119) [packages/fast-check/src/check/runner/utils/RunDetailsFormatter.ts#L266-L270](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/utils/RunDetailsFormatter.ts#L266-L270)
- Worker mode sends either generated inputs or rngState/runId payloads with predicate and run identifiers; workers reconstruct inputs when needed and return success, failure, or skipped messages, which BasicPool correlates to the current registration. — [packages/worker/src/internals/worker-property/WorkerPropertyBuilder.ts#L19-L29](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/worker/src/internals/worker-property/WorkerPropertyBuilder.ts#L19-L29) [packages/worker/src/internals/worker-property/WorkerPropertyFromWorker.ts#L62-L75](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/worker/src/internals/worker-property/WorkerPropertyFromWorker.ts#L62-L75) [packages/worker/src/internals/worker-runner/WorkerRunner.ts#L19-L36](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/worker/src/internals/worker-runner/WorkerRunner.ts#L19-L36) [packages/worker/src/internals/worker-pool/BasicPool.ts#L59-L72](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/worker/src/internals/worker-pool/BasicPool.ts#L59-L72)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
