CodeVetter · Repo Unpack · System map
dubzzz/fast-check
The system centers on an importable testing library rather than an application server. Generation, execution, shrinking, and reporting are separate core modules; adapters and worker orchestration form additional runtime boundaries. Builds produce publishable library artifacts and a static documentation site. The inspected runner retains execution state in memory and exposes replay coordinates through its reports.
- The workspace includes examples, packages/*, and website; root scripts orchestrate package builds, Vitest tests and benchmarks, parallel typechecking, oxfmt, oxlint, and publication lint.
- The core package exports lib/fast-check.js, publishes lib, declares sideEffects:false, and depends on pure-rand; fast-check.ts explicitly exports generators, runner APIs, model runners, scheduler APIs, and plugins.
- asyncProperty constructs PropertyImplem around tuple arbitraries; check coordinates parameter qualification, plugin instances, input iteration, predicate execution, and RunExecution reporting.
- RunExecution owns counters, failure values, error objects, paths, and optional execution trees in memory; toRunDetails returns those values and the qualified run configuration.
- Jest and Vitest export enriched test/it functions, while AVA exports testProp; @fast-check/worker adds a Node worker_threads boundary around predicate execution.
- buildConfigFor derives src entrypoints from package exports, emits ESM plus declarations, externalizes bare imports, and emits CJS only for conditional exports; core build metadata uses GITHUB_SHA or a fixed git rev-parse HEAD shell command.
- The website is Docusaurus with React pages, autogenerated documentation navigation, Algolia search/Ask AI, offline PWA activation, and TypeDoc-generated API documentation from the core entrypoint.
- Build Status gates package publication on required checks and tags at HEAD, publishes npm artifacts with attestations, and contains a disabled Netlify publication job; separate workflows create draft releases, announce on Bluesky, and force-mirror main/tags to Tangled.