@playfast/reform 0.0.11 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -11
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ State, events, reducers, derived values, async & remote data, and compositions
|
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
-
reform is an application framework built on [Effect](https://effect.website). You describe your app as **definitions** — state, events, reducers, calculations, compositions — and provide their behavior **separately** as Effect layers. The core renders nothing: a host package ([`@playfast/react`](https://www.npmjs.com/package/@playfast/react), [`@playfast/react-native`](https://www.npmjs.com/package/@playfast/react-native)) turns a closed *scene* into a live tree, and [`@playfast/proof`](https://www.npmjs.com/package/@playfast/proof) drives that same scene headlessly in tests. One model, three consumers, no seam between them.
|
|
16
|
+
reform is an application framework built on [Effect](https://effect.website). You describe your app as **definitions** — state, events, reducers, calculations, compositions — and provide their behavior **separately** as Effect layers. The core renders nothing: a host package ([`@playfast/reform-react`](https://www.npmjs.com/package/@playfast/reform-react), [`@playfast/reform-react-native`](https://www.npmjs.com/package/@playfast/reform-react-native)) turns a closed *scene* into a live tree, and [`@playfast/reform-proof`](https://www.npmjs.com/package/@playfast/reform-proof) drives that same scene headlessly in tests. One model, three consumers, no seam between them.
|
|
17
17
|
|
|
18
18
|
## Install
|
|
19
19
|
|
|
@@ -474,7 +474,7 @@ const AppScene = scene(AppRoot, {
|
|
|
474
474
|
})
|
|
475
475
|
```
|
|
476
476
|
|
|
477
|
-
`provide` is the list of layers that close the app (they must resolve to `MountedServices` — every composition's render service plus the `Bus`). Hand the scene to [`@playfast/react`](https://www.npmjs.com/package/@playfast/react) to mount or to [`@playfast/proof`](https://www.npmjs.com/package/@playfast/proof) to assert. `seedScene` overlays seed values onto already-closed layers (used by the dev tool to preview alternative initial state).
|
|
477
|
+
`provide` is the list of layers that close the app (they must resolve to `MountedServices` — every composition's render service plus the `Bus`). Hand the scene to [`@playfast/reform-react`](https://www.npmjs.com/package/@playfast/reform-react) to mount or to [`@playfast/reform-proof`](https://www.npmjs.com/package/@playfast/reform-proof) to assert. `seedScene` overlays seed values onto already-closed layers (used by the dev tool to preview alternative initial state).
|
|
478
478
|
|
|
479
479
|
---
|
|
480
480
|
|
|
@@ -495,7 +495,7 @@ const AppLayer = Layer.mergeAll(
|
|
|
495
495
|
)
|
|
496
496
|
```
|
|
497
497
|
|
|
498
|
-
Also exported for hosts and headless tests: `Bus` / `publish(priority, event)` / `Priority` (`'High' | 'Normal'`); the `Reducers` / `Channels` / `Procedures` registries and their `ReducerEntry` / `ProcedureEntry` shapes; `CaptureSink` (the capturing UI sink proofs assert against); the tagged errors (`
|
|
498
|
+
Also exported for hosts and headless tests: `Bus` / `publish(priority, event)` / `Priority` (`'High' | 'Normal'`); the `Reducers` / `Channels` / `Procedures` registries and their `ReducerEntry` / `ProcedureEntry` shapes; `CaptureSink` (the capturing UI sink proofs assert against); the tagged errors (`AsyncReducer`, `AsyncSceneLayer`, `DuplicateRegistration`, `FeatureLoadFailed`, `InvalidProvideTarget`, `UnknownGroupState`); and the **notification scheduler** — `Notifications` / `notificationsLayer` / `makeScheduler` / `defaultScheduler`, which hosts provide upstream for per-runtime isolation (concurrent SSR, multiple mounted roots). Everything else coalesces on the process-wide default scheduler.
|
|
499
499
|
|
|
500
500
|
---
|
|
501
501
|
|
|
@@ -533,7 +533,7 @@ const logic = Layer.mergeAll(
|
|
|
533
533
|
}),
|
|
534
534
|
)
|
|
535
535
|
|
|
536
|
-
// a DOM presentation (rendered by @playfast/react)
|
|
536
|
+
// a DOM presentation (rendered by @playfast/reform-react)
|
|
537
537
|
const view = provide(CounterUi, Ui.make(CounterUi, ({ count }, _s, { bump }) =>
|
|
538
538
|
<button onClick={() => bump({ by: 1 })}>count: {count}</button>
|
|
539
539
|
))
|
|
@@ -541,7 +541,7 @@ const view = provide(CounterUi, Ui.make(CounterUi, ({ count }, _s, { bump }) =>
|
|
|
541
541
|
export const CounterScene = scene(Counter, { provide: [Engine, logic, view] })
|
|
542
542
|
```
|
|
543
543
|
|
|
544
|
-
Mount it with [`@playfast/react`](https://www.npmjs.com/package/@playfast/react), or prove it headlessly with [`@playfast/proof`](https://www.npmjs.com/package/@playfast/proof) — the same `CounterScene` value.
|
|
544
|
+
Mount it with [`@playfast/reform-react`](https://www.npmjs.com/package/@playfast/reform-react), or prove it headlessly with [`@playfast/reform-proof`](https://www.npmjs.com/package/@playfast/reform-proof) — the same `CounterScene` value.
|
|
545
545
|
|
|
546
546
|
---
|
|
547
547
|
|
|
@@ -550,12 +550,12 @@ Mount it with [`@playfast/react`](https://www.npmjs.com/package/@playfast/react)
|
|
|
550
550
|
| Package | Role |
|
|
551
551
|
| --- | --- |
|
|
552
552
|
| **`@playfast/reform`** | Renderer-neutral core (this package) |
|
|
553
|
-
| [`@playfast/react`](https://www.npmjs.com/package/@playfast/react) | React / DOM host |
|
|
554
|
-
| [`@playfast/react-native`](https://www.npmjs.com/package/@playfast/react-native) | React Native host |
|
|
555
|
-
| [`@playfast/forms`](https://www.npmjs.com/package/@playfast/forms) | Headless form state |
|
|
556
|
-
| [`@playfast/forms-react`](https://www.npmjs.com/package/@playfast/forms-react) | Typed JSX mapping for forms |
|
|
557
|
-
| [`@playfast/proof`](https://www.npmjs.com/package/@playfast/proof) | Headless testing toolkit |
|
|
558
|
-
| [`@playfast/eslint-plugin`](https://www.npmjs.com/package/@playfast/eslint-plugin) | Lint rules for reform conventions |
|
|
553
|
+
| [`@playfast/reform-react`](https://www.npmjs.com/package/@playfast/reform-react) | React / DOM host |
|
|
554
|
+
| [`@playfast/reform-react-native`](https://www.npmjs.com/package/@playfast/reform-react-native) | React Native host |
|
|
555
|
+
| [`@playfast/reform-forms`](https://www.npmjs.com/package/@playfast/reform-forms) | Headless form state |
|
|
556
|
+
| [`@playfast/reform-forms-react`](https://www.npmjs.com/package/@playfast/reform-forms-react) | Typed JSX mapping for forms |
|
|
557
|
+
| [`@playfast/reform-proof`](https://www.npmjs.com/package/@playfast/reform-proof) | Headless testing toolkit |
|
|
558
|
+
| [`@playfast/reform-eslint-plugin`](https://www.npmjs.com/package/@playfast/reform-eslint-plugin) | Lint rules for reform conventions |
|
|
559
559
|
|
|
560
560
|
## License
|
|
561
561
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@playfast/reform",
|
|
3
3
|
"playbook": "./playbook",
|
|
4
|
-
"version": "0.0
|
|
4
|
+
"version": "0.1.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "The renderer-neutral core of the reform framework — typed, headless state, events, reducers, derived values, async/remote data, and compositions built on Effect.",
|
|
7
7
|
"keywords": [
|