|
2 | 2 |
|
3 | 3 | Schema-first state machines and statecharts for Effect. |
4 | 4 |
|
5 | | -This package is the external home for the Machine API proposed in |
6 | | -[Effect PR #6429](https://github.com/Effect-TS/effect/pull/6429). During |
7 | | -incubation this repository is the canonical implementation; the synchronization |
8 | | -tool keeps the Effect PR mechanically aligned without maintaining a second |
9 | | -implementation. |
10 | | - |
11 | 5 | > Early-release software: APIs may change, and releases are coupled to an exact |
12 | 6 | > Effect beta. |
13 | 7 |
|
@@ -395,49 +389,18 @@ pnpm check |
395 | 389 | ``` |
396 | 390 |
|
397 | 391 | Individual commands are available for `build`, `test`, `test:types`, |
398 | | -`typecheck`, `format:check`, `test:consumer`, `test:sync`, `sync:check`, and |
399 | | -`pack:check`. Runtime tests use `@effect/vitest`; type tests use TSTyche and |
400 | | -TypeScript 6.0.3. The consumer check packs the package, imports all public |
401 | | -entrypoints, and compiles a strict TypeScript consumer with |
402 | | -`skipLibCheck: false`. |
403 | | - |
404 | | -## Synchronizing Effect PR #6429 |
405 | | - |
406 | | -Make logic changes here first and run `pnpm check`. Then generate the mapped |
407 | | -production files, runtime tests, and type tests into a writable Effect checkout: |
408 | | - |
409 | | -```sh |
410 | | -pnpm sync:effect -- /path/to/effect |
411 | | -``` |
412 | | - |
413 | | -The explicit mapping covers only the eight production files and six test files. |
414 | | -It rewrites package imports to Effect repository-relative `.ts` imports and |
415 | | -restores Effect's private `PipeInspectableProto` boundary. It never copies |
416 | | -package metadata, documentation, release files, or changesets. |
417 | | - |
418 | | -Check an existing checkout without writing: |
419 | | - |
420 | | -```sh |
421 | | -pnpm sync:effect -- --check /path/to/effect |
422 | | -``` |
423 | | - |
424 | | -Check mode exits non-zero on any drift. `pnpm test:sync` exercises generation, |
425 | | -a clean check, and drift detection in a disposable temporary directory. Never |
426 | | -generate into a checkout with work you have not reviewed. After generation, |
427 | | -inspect the Effect diff and run its targeted machine, reactivity, cluster, and |
428 | | -type-test validations followed by `pnpm check`. |
429 | | - |
430 | | -The current source reference is branch `sandro/state-charts` in the Effect |
431 | | -repository. Exact dependency pins and the sync check are the proof boundary; |
432 | | -vendoring the rest of Effect is intentionally unnecessary. |
| 392 | +`typecheck`, `format:check`, `test:consumer`, and `pack:check`. Runtime tests use |
| 393 | +`@effect/vitest`; type tests use TSTyche and TypeScript 6.0.3. The consumer check |
| 394 | +packs the package, imports all public entrypoints, and compiles a strict |
| 395 | +TypeScript consumer with `skipLibCheck: false`. |
433 | 396 |
|
434 | 397 | ## Examples |
435 | 398 |
|
436 | 399 | The [Pokémon statechart example](./examples/pokemon) is a standalone React and |
437 | 400 | Vite project demonstrating compound and parallel states, state-scoped invokes, |
438 | | -invoked child statecharts, typed emissions, and Atom reactivity. It installs the |
439 | | -published package from npm, so its dependency graph, lockfile, build, and CI job |
440 | | -are isolated from this library package. |
| 401 | +invoked child statecharts, typed emissions, and Atom reactivity. It uses a local |
| 402 | +`file:` dependency on this package while retaining an isolated dependency graph, |
| 403 | +lockfile, build, and CI job. |
441 | 404 |
|
442 | 405 | ## Releases |
443 | 406 |
|
|
0 commit comments