How ealush/vest works
Vest is a stateful validation library for running field- and group-oriented test suites, retaining validation results, and coordinating asynchronous checks. The primary workflow is user-defined suite → suite runner → registered tests and runtime execution → queryable result. The README also documents schemas, Standard Schema interoperability, framework integrations, and workflow controls such as optional fields, warnings, and dynamic lists; these remain visible as product branches. The runner and result selectors are sampled, but several runtime and integration internals are not, so uncertain call wiring is omitted.
Main entry points: useCreateSuiteRunner.ts Suite runner · vest.ts Suite API · IsolateSuite.ts Suite isolation · n4s.ts Enforce rules
Components 21
Suite authoring
- Suite API
packages/vest/src/vest.ts - Suite creation
packages/vest/src/suite/createSuite.ts - Test declarations
- Workflow controls
packages/vest/src/hooks
Validation execution
- Suite runner
packages/vest/src/suite/useCreateSuiteRunner.ts - Suite context
packages/vest/src/core/context/SuiteContext.ts - Suite isolation
packages/vest/src/core/isolate/IsolateSuite/IsolateSuite.ts - Test isolates
packages/vest/src/core/isolate/IsolateTest/IsolateTest.ts - Isolate runtime
packages/vestjs-runtime/src/VestRuntime.ts - State reconciliation
packages/vestjs-runtime/src/Reconciler.ts - Suite events
packages/vest/src/core/VestBus/VestBus.ts
State and results
- Suite result
packages/vest/src/suiteResult/suiteResult.ts - Result selectors
packages/vest/src/suiteResult/selectors/suiteSelectors.ts - Field validity
packages/vest/src/suiteResult/selectors/useSetValidProperty.ts
Rules and schemas
- Enforce rules
packages/n4s/src/n4s.ts - Rule chains
packages/n4s/src/rules/chainBuilder/proxyHandlers.ts - Schema rules
packages/n4s/src/rules/schemaRules/schemaRules.ts
Interoperability
- Schema contract
integrations/kit/src/contracts/standard-schema.ts - Framework integrations
integrations - Server integrations
integrations/hono/src/app.ts
Other components
- Form developer
Connections 22
- Form developer → Suite API: defines suite
- Suite API → Suite creation: creates suite
- Suite creation → Suite runner: binds callback
- Form developer → Suite runner: runs suite
- Suite runner → Suite context: runs in context
- Suite runner → Suite isolation: executes callback
- Suite isolation → Test declarations: registers tests
- Test declarations → Test isolates: creates test state
- Suite isolation → Isolate runtime: uses runtime
- Isolate runtime → State reconciliation: reconciles state
- Suite runner → Suite events: emits events
- Suite runner → Suite result: builds result
- Suite result → Result selectors: exposes queries
- Result selectors → Field validity: checks validity
- Workflow controls → Suite runner: modifies execution
- Suite runner → Schema rules: applies schemas
- Suite runner → Enforce rules: uses schema rules
- Enforce rules → Rule chains: builds chains
- Enforce rules → Schema rules: provides schemas
- Suite runner → Schema contract: supports schemas
- Framework integrations → Suite API: adapts suites
- Server integrations → Suite API: validates requests