@xmachines/docs 1.0.0-beta.10
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/LICENSE +21 -0
- package/README.md +15 -0
- package/api/@xmachines/play/README.md +130 -0
- package/api/@xmachines/play/type-aliases/PlayEvent.md +81 -0
- package/api/@xmachines/play-actor/README.md +247 -0
- package/api/@xmachines/play-actor/classes/AbstractActor.md +520 -0
- package/api/@xmachines/play-actor/interfaces/Routable.md +29 -0
- package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +17 -0
- package/api/@xmachines/play-actor/interfaces/Viewable.md +12 -0
- package/api/@xmachines/play-catalog/README.md +331 -0
- package/api/@xmachines/play-catalog/functions/defineCatalog.md +98 -0
- package/api/@xmachines/play-catalog/functions/defineComponents.md +134 -0
- package/api/@xmachines/play-catalog/type-aliases/Catalog.md +48 -0
- package/api/@xmachines/play-catalog/type-aliases/ComponentsFor.md +20 -0
- package/api/@xmachines/play-catalog/type-aliases/InferComponentProps.md +65 -0
- package/api/@xmachines/play-catalog/type-aliases/NoExtraKeys.md +17 -0
- package/api/@xmachines/play-react/README.md +423 -0
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +613 -0
- package/api/@xmachines/play-react/functions/useSignalEffect.md +68 -0
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +15 -0
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +14 -0
- package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +15 -0
- package/api/@xmachines/play-react/variables/PlayRenderer.md +64 -0
- package/api/@xmachines/play-react-router/README.md +198 -0
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +321 -0
- package/api/@xmachines/play-react-router/classes/RouteMap.md +137 -0
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +19 -0
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +35 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +14 -0
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +17 -0
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-react-router-demo/README.md +137 -0
- package/api/@xmachines/play-router/README.md +502 -0
- package/api/@xmachines/play-router/classes/BaseRouteMap.md +142 -0
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +300 -0
- package/api/@xmachines/play-router/functions/buildRouteTree.md +27 -0
- package/api/@xmachines/play-router/functions/connectRouter.md +67 -0
- package/api/@xmachines/play-router/functions/crawlMachine.md +92 -0
- package/api/@xmachines/play-router/functions/createBrowserHistory.md +47 -0
- package/api/@xmachines/play-router/functions/createRouteMap.md +53 -0
- package/api/@xmachines/play-router/functions/createRouter.md +76 -0
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +32 -0
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +64 -0
- package/api/@xmachines/play-router/functions/extractRoute.md +45 -0
- package/api/@xmachines/play-router/functions/findRouteById.md +37 -0
- package/api/@xmachines/play-router/functions/findRouteByPath.md +39 -0
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +35 -0
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +39 -0
- package/api/@xmachines/play-router/functions/routeExists.md +26 -0
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +29 -0
- package/api/@xmachines/play-router/functions/validateStateExists.md +29 -0
- package/api/@xmachines/play-router/interfaces/BaseRouteMapping.md +27 -0
- package/api/@xmachines/play-router/interfaces/BrowserHistory.md +172 -0
- package/api/@xmachines/play-router/interfaces/BrowserWindow.md +69 -0
- package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +13 -0
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +19 -0
- package/api/@xmachines/play-router/interfaces/RouteMap.md +56 -0
- package/api/@xmachines/play-router/interfaces/RouteNode.md +21 -0
- package/api/@xmachines/play-router/interfaces/RouteObject.md +21 -0
- package/api/@xmachines/play-router/interfaces/RouteTree.md +20 -0
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-router/interfaces/StateVisit.md +15 -0
- package/api/@xmachines/play-router/interfaces/VanillaRouter.md +28 -0
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +11 -0
- package/api/@xmachines/play-router-demo/README.md +137 -0
- package/api/@xmachines/play-signals/README.md +176 -0
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +34 -0
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +49 -0
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +35 -0
- package/api/@xmachines/play-signals/interfaces/SignalState.md +68 -0
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +97 -0
- package/api/@xmachines/play-signals/namespaces/Signal/README.md +22 -0
- package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +52 -0
- package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +72 -0
- package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +21 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +85 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +13 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +25 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +9 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +9 -0
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +19 -0
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +32 -0
- package/api/@xmachines/play-solid/README.md +311 -0
- package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +15 -0
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +70 -0
- package/api/@xmachines/play-solid-router/README.md +666 -0
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +150 -0
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +347 -0
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +19 -0
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +32 -0
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +486 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +14 -0
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +14 -0
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +51 -0
- package/api/@xmachines/play-solid-router-demo/README.md +127 -0
- package/api/@xmachines/play-tanstack-react-router/README.md +226 -0
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +137 -0
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +348 -0
- package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +19 -0
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +53 -0
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +35 -0
- package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +38 -0
- package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +33 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +14 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +17 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +26 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +9 -0
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +78 -0
- package/api/@xmachines/play-tanstack-react-router/variables/extractMachineRoutes.md +64 -0
- package/api/@xmachines/play-tanstack-react-router-demo/README.md +126 -0
- package/api/@xmachines/play-tanstack-solid-router/README.md +285 -0
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +150 -0
- package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +343 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +19 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +32 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +14 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +23 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +9 -0
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +78 -0
- package/api/@xmachines/play-tanstack-solid-router-demo/README.md +126 -0
- package/api/@xmachines/play-vue/README.md +292 -0
- package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +14 -0
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +9 -0
- package/api/@xmachines/play-vue-router/README.md +604 -0
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +209 -0
- package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +201 -0
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +360 -0
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +19 -0
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +15 -0
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +67 -0
- package/api/@xmachines/play-vue-router-demo/README.md +133 -0
- package/api/@xmachines/play-xstate/README.md +512 -0
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +527 -0
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +43 -0
- package/api/@xmachines/play-xstate/functions/composeGuards.md +79 -0
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +67 -0
- package/api/@xmachines/play-xstate/functions/definePlayer.md +127 -0
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +109 -0
- package/api/@xmachines/play-xstate/functions/eventMatches.md +40 -0
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +54 -0
- package/api/@xmachines/play-xstate/functions/hasContext.md +42 -0
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +41 -0
- package/api/@xmachines/play-xstate/functions/mergeViewProps.md +26 -0
- package/api/@xmachines/play-xstate/functions/negateGuard.md +61 -0
- package/api/@xmachines/play-xstate/functions/stateMatches.md +25 -0
- package/api/@xmachines/play-xstate/functions/validateComponentBinding.md +39 -0
- package/api/@xmachines/play-xstate/functions/validateViewProps.md +80 -0
- package/api/@xmachines/play-xstate/interfaces/CatalogEntry.md +16 -0
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +24 -0
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +26 -0
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +22 -0
- package/api/@xmachines/play-xstate/type-aliases/Catalog.md +21 -0
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +14 -0
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +34 -0
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +20 -0
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +29 -0
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +45 -0
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +51 -0
- package/api/@xmachines/play-xstate/type-aliases/ValidationResult.md +17 -0
- package/api/@xmachines/play-xstate/type-aliases/ViewMergeContext.md +35 -0
- package/api/@xmachines/shared/README.md +379 -0
- package/api/@xmachines/shared/functions/defineXmVitestConfig.md +29 -0
- package/api/@xmachines/shared/functions/xmAliases.md +24 -0
- package/api/README.md +25 -0
- package/api/llms.txt +26 -0
- package/examples/README.md +63 -0
- package/examples/basic-state-machine.md +70 -0
- package/examples/form-validation.md +167 -0
- package/examples/multi-router-integration.md +277 -0
- package/examples/routing-patterns.md +260 -0
- package/examples/traffic-light.md +99 -0
- package/guides/README.md +29 -0
- package/guides/getting-started.md +223 -0
- package/guides/installation.md +323 -0
- package/index.d.ts +3 -0
- package/index.js +4 -0
- package/package.json +54 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
[Documentation](../../README.md) / @xmachines/play-signals
|
|
2
|
+
|
|
3
|
+
# @xmachines/play-signals
|
|
4
|
+
|
|
5
|
+
**Canonical Signals substrate for XMachines with Stage 1 API isolation**
|
|
6
|
+
|
|
7
|
+
`@xmachines/play-signals` re-exports `Signal` from `signal-polyfill` as the single import boundary for XMachines packages.
|
|
8
|
+
|
|
9
|
+
## Why This Package Exists
|
|
10
|
+
|
|
11
|
+
- Keep the raw `Signal` API as the canonical substrate surface.
|
|
12
|
+
- Isolate Stage 1 proposal churn behind one package boundary.
|
|
13
|
+
- Preserve Play invariants: Signal-only reactivity, passive infrastructure, and event-only mutation paths.
|
|
14
|
+
|
|
15
|
+
This package does not add business behavior to signals. Adapters and renderers observe signals and forward events; they do not mutate business state directly.
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install @xmachines/play-signals
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Current Exports
|
|
24
|
+
|
|
25
|
+
- `Signal` (re-export from `signal-polyfill`)
|
|
26
|
+
- Type exports from `src/types.ts`: `SignalState`, `SignalComputed`, `SignalWatcher`, `SignalOptions`, `ComputedOptions`, `WatcherNotify`
|
|
27
|
+
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
import { Signal } from "@xmachines/play-signals";
|
|
32
|
+
|
|
33
|
+
const count = new Signal.State(0);
|
|
34
|
+
const doubled = new Signal.Computed(() => count.get() * 2);
|
|
35
|
+
|
|
36
|
+
const watcher = new Signal.subtle.Watcher(() => {
|
|
37
|
+
queueMicrotask(() => {
|
|
38
|
+
const pending = watcher.getPending();
|
|
39
|
+
for (const signal of pending) {
|
|
40
|
+
signal.get();
|
|
41
|
+
}
|
|
42
|
+
watcher.watch(...pending);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
watcher.watch(doubled);
|
|
47
|
+
doubled.get();
|
|
48
|
+
|
|
49
|
+
count.set(2);
|
|
50
|
+
|
|
51
|
+
const dispose = () => {
|
|
52
|
+
watcher.unwatch(doubled);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
void dispose;
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Canonical Watcher Lifecycle
|
|
59
|
+
|
|
60
|
+
Use one lifecycle pattern everywhere (React, Vue, Solid, router bridges, helper wrappers):
|
|
61
|
+
|
|
62
|
+
1. `notify` callback runs.
|
|
63
|
+
2. Schedule work with `queueMicrotask`.
|
|
64
|
+
3. Drain `watcher.getPending()`.
|
|
65
|
+
4. Perform reads/effects.
|
|
66
|
+
5. Re-arm watcher with `watch()` or `watch(...signals)`.
|
|
67
|
+
|
|
68
|
+
Watcher notifications are one-shot. If you do not re-arm, you will miss future updates.
|
|
69
|
+
|
|
70
|
+
## Cleanup Contract
|
|
71
|
+
|
|
72
|
+
Always dispose explicitly. Do not rely on GC-only cleanup guidance.
|
|
73
|
+
|
|
74
|
+
- If you called `watch(...)`, call `unwatch(...)` in teardown.
|
|
75
|
+
- Framework lifecycles (`useEffect` cleanup, `onUnmounted`, `onCleanup`) must unwatch.
|
|
76
|
+
- Bridge lifecycles (`disconnect`, `dispose`) must unwatch and unsubscribe.
|
|
77
|
+
|
|
78
|
+
## Optional Helper Direction
|
|
79
|
+
|
|
80
|
+
Raw `Signal` remains canonical. Helper APIs are optional, additive guidance for consistency:
|
|
81
|
+
|
|
82
|
+
- `watchSignals(signals, onChange, options)`
|
|
83
|
+
- `createSignalEffect(effect, options)`
|
|
84
|
+
- `toSubscribable(signal, options)`
|
|
85
|
+
|
|
86
|
+
These helpers are intended to codify lifecycle-safe watcher scheduling and deterministic teardown. They do not replace direct `Signal` usage.
|
|
87
|
+
|
|
88
|
+
## API Surface
|
|
89
|
+
|
|
90
|
+
- `Signal.State<T>`: writable signal state (`get`, `set`)
|
|
91
|
+
- `Signal.Computed<T>`: lazy memoized derivations
|
|
92
|
+
- `Signal.subtle.Watcher`: low-level watcher (`watch`, `unwatch`, `getPending`)
|
|
93
|
+
|
|
94
|
+
## Architecture Notes
|
|
95
|
+
|
|
96
|
+
- **Signal-Only Reactivity (INV-05):** Signals are the reactive substrate.
|
|
97
|
+
- **Passive Infrastructure (INV-04):** Adapters and frameworks only observe/forward.
|
|
98
|
+
- **Actor Authority (INV-01):** Business validity and transitions stay in actors.
|
|
99
|
+
- **Event-only mutation path:** Signals are not a business mutation channel.
|
|
100
|
+
|
|
101
|
+
## Resources
|
|
102
|
+
|
|
103
|
+
- [TC39 Signals Proposal](https://github.com/tc39/proposal-signals)
|
|
104
|
+
- [signal-polyfill](https://github.com/proposal-signals/signal-polyfill)
|
|
105
|
+
- [RFC Play v1](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md)
|
|
106
|
+
|
|
107
|
+
## License
|
|
108
|
+
|
|
109
|
+
Copyright (c) 2016 [Mikael Karon](mailto:mikael@karon.se). All rights reserved.
|
|
110
|
+
|
|
111
|
+
This work is licensed under the terms of the MIT license.
|
|
112
|
+
For a copy, see <https://opensource.org/licenses/MIT>.
|
|
113
|
+
|
|
114
|
+
TC39 Signals Polyfill for XMachines Play Architecture
|
|
115
|
+
|
|
116
|
+
Provides fine-grained reactive state primitives based on the TC39 Signals proposal (Stage 1).
|
|
117
|
+
This package isolates the TC39 polyfill to protect the codebase from Stage 1 API changes.
|
|
118
|
+
|
|
119
|
+
**Architectural Context:** Implements **Signal-Only Reactivity (INV-05)** by providing
|
|
120
|
+
the reactive primitives that enable Actor-to-Infrastructure communication without
|
|
121
|
+
subscriptions or event emitters. All state propagation in Play Architecture uses
|
|
122
|
+
TC39 Signals for automatic dependency tracking and glitch-free updates.
|
|
123
|
+
|
|
124
|
+
## Example
|
|
125
|
+
|
|
126
|
+
Basic Signal usage
|
|
127
|
+
|
|
128
|
+
```typescript
|
|
129
|
+
import { Signal } from "@xmachines/play-signals";
|
|
130
|
+
|
|
131
|
+
// Create state signal
|
|
132
|
+
const count = new Signal.State(0);
|
|
133
|
+
|
|
134
|
+
// Create computed signal
|
|
135
|
+
const doubled = new Signal.Computed(() => count.get() * 2);
|
|
136
|
+
|
|
137
|
+
// Observe changes
|
|
138
|
+
const watcher = new Signal.subtle.Watcher(() => {
|
|
139
|
+
console.log("Count:", count.get(), "Doubled:", doubled.get());
|
|
140
|
+
});
|
|
141
|
+
watcher.watch(count);
|
|
142
|
+
|
|
143
|
+
count.set(5); // Logs: Count: 5 Doubled: 10
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## See
|
|
147
|
+
|
|
148
|
+
- [RFC Play v1 - Invariant INV-05](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md)
|
|
149
|
+
- [TC39 Signals Proposal](https://github.com/tc39/proposal-signals)
|
|
150
|
+
|
|
151
|
+
## Remarks
|
|
152
|
+
|
|
153
|
+
**Stage 1 Status:** TC39 Signals is currently Stage 1 in the TC39 process. This package
|
|
154
|
+
uses the official `signal-polyfill` reference implementation to isolate the codebase
|
|
155
|
+
from potential API changes as the proposal evolves. All signal imports should go through
|
|
156
|
+
this package to maintain isolation.
|
|
157
|
+
|
|
158
|
+
**Why Isolation:** By re-exporting the polyfill through this dedicated package, we can
|
|
159
|
+
update the polyfill version or adapt to API changes in one place without touching
|
|
160
|
+
consuming packages. This architectural decision protects against Stage 1 API churn.
|
|
161
|
+
|
|
162
|
+
## Namespaces
|
|
163
|
+
|
|
164
|
+
- [Signal](namespaces/Signal/README.md)
|
|
165
|
+
|
|
166
|
+
## Interfaces
|
|
167
|
+
|
|
168
|
+
- [ComputedOptions](interfaces/ComputedOptions.md)
|
|
169
|
+
- [SignalComputed](interfaces/SignalComputed.md)
|
|
170
|
+
- [SignalOptions](interfaces/SignalOptions.md)
|
|
171
|
+
- [SignalState](interfaces/SignalState.md)
|
|
172
|
+
- [SignalWatcher](interfaces/SignalWatcher.md)
|
|
173
|
+
|
|
174
|
+
## Type Aliases
|
|
175
|
+
|
|
176
|
+
- [WatcherNotify](type-aliases/WatcherNotify.md)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-signals](../README.md) / ComputedOptions
|
|
2
|
+
|
|
3
|
+
# Interface: ComputedOptions\<T\>
|
|
4
|
+
|
|
5
|
+
Defined in: [packages/play-signals/src/types.ts:84](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-signals/src/types.ts#L84)
|
|
6
|
+
|
|
7
|
+
Options for creating Signal.Computed
|
|
8
|
+
|
|
9
|
+
## Param
|
|
10
|
+
|
|
11
|
+
Optional custom equality function for memoization
|
|
12
|
+
|
|
13
|
+
## Example
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { Signal } from "@xmachines/play-signals";
|
|
17
|
+
import type { ComputedOptions } from "@xmachines/play-signals";
|
|
18
|
+
|
|
19
|
+
const options: ComputedOptions<string> = {
|
|
20
|
+
equals: (a, b) => a.toLowerCase() === b.toLowerCase(),
|
|
21
|
+
};
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Type Parameters
|
|
25
|
+
|
|
26
|
+
| Type Parameter |
|
|
27
|
+
| -------------- |
|
|
28
|
+
| `T` |
|
|
29
|
+
|
|
30
|
+
## Properties
|
|
31
|
+
|
|
32
|
+
| Property | Type | Description | Defined in |
|
|
33
|
+
| -------------------------------------- | ----------------------- | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
34
|
+
| <a id="property-equals"></a> `equals?` | (`a`, `b`) => `boolean` | Custom equality function for memoization | [packages/play-signals/src/types.ts:88](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-signals/src/types.ts#L88) |
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-signals](../README.md) / SignalComputed
|
|
2
|
+
|
|
3
|
+
# Interface: SignalComputed\<T\>
|
|
4
|
+
|
|
5
|
+
Defined in: [packages/play-signals/src/types.ts:111](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-signals/src/types.ts#L111)
|
|
6
|
+
|
|
7
|
+
Lazily-evaluated, memoized computed signal
|
|
8
|
+
|
|
9
|
+
Signal.Computed automatically tracks dependencies when its callback is executed.
|
|
10
|
+
The computation is memoized and only re-runs when dependencies change. This enables
|
|
11
|
+
automatic dependency tracking without manual subscription management.
|
|
12
|
+
|
|
13
|
+
## Example
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { Signal } from "@xmachines/play-signals";
|
|
17
|
+
|
|
18
|
+
const count = new Signal.State(0);
|
|
19
|
+
const doubled = new Signal.Computed(() => count.get() * 2);
|
|
20
|
+
|
|
21
|
+
console.log(doubled.get()); // 0
|
|
22
|
+
count.set(5);
|
|
23
|
+
console.log(doubled.get()); // 10 (recomputed)
|
|
24
|
+
console.log(doubled.get()); // 10 (memoized, not recomputed)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Type Parameters
|
|
28
|
+
|
|
29
|
+
| Type Parameter |
|
|
30
|
+
| -------------- |
|
|
31
|
+
| `T` |
|
|
32
|
+
|
|
33
|
+
## Methods
|
|
34
|
+
|
|
35
|
+
### get()
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
get(): T;
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Defined in: [packages/play-signals/src/types.ts:117](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-signals/src/types.ts#L117)
|
|
42
|
+
|
|
43
|
+
Read computed value (recalculates only if dependencies changed)
|
|
44
|
+
|
|
45
|
+
#### Returns
|
|
46
|
+
|
|
47
|
+
`T`
|
|
48
|
+
|
|
49
|
+
Computed value based on current dependencies
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-signals](../README.md) / SignalOptions
|
|
2
|
+
|
|
3
|
+
# Interface: SignalOptions\<T\>
|
|
4
|
+
|
|
5
|
+
Defined in: [packages/play-signals/src/types.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-signals/src/types.ts#L26)
|
|
6
|
+
|
|
7
|
+
Options for creating Signal.State
|
|
8
|
+
|
|
9
|
+
## Param
|
|
10
|
+
|
|
11
|
+
Optional custom equality function for determining if value changed
|
|
12
|
+
|
|
13
|
+
## Example
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { Signal } from "@xmachines/play-signals";
|
|
17
|
+
import type { SignalOptions } from "@xmachines/play-signals";
|
|
18
|
+
|
|
19
|
+
const options: SignalOptions<number> = {
|
|
20
|
+
equals: (a, b) => a === b,
|
|
21
|
+
};
|
|
22
|
+
const count = new Signal.State(0, options);
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Type Parameters
|
|
26
|
+
|
|
27
|
+
| Type Parameter |
|
|
28
|
+
| -------------- |
|
|
29
|
+
| `T` |
|
|
30
|
+
|
|
31
|
+
## Properties
|
|
32
|
+
|
|
33
|
+
| Property | Type | Description | Defined in |
|
|
34
|
+
| -------------------------------------- | ----------------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
35
|
+
| <a id="property-equals"></a> `equals?` | (`a`, `b`) => `boolean` | Custom equality function for determining if value changed | [packages/play-signals/src/types.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-signals/src/types.ts#L33) |
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-signals](../README.md) / SignalState
|
|
2
|
+
|
|
3
|
+
# Interface: SignalState\<T\>
|
|
4
|
+
|
|
5
|
+
Defined in: [packages/play-signals/src/types.ts:53](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-signals/src/types.ts#L53)
|
|
6
|
+
|
|
7
|
+
Writable state signal holding a single reactive value
|
|
8
|
+
|
|
9
|
+
Signal.State is the fundamental primitive for reactive state. Calling `get()` within
|
|
10
|
+
a computed signal or watcher automatically tracks the state as a dependency. Calling
|
|
11
|
+
`set()` notifies all dependent computations and watchers.
|
|
12
|
+
|
|
13
|
+
## Example
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { Signal } from "@xmachines/play-signals";
|
|
17
|
+
|
|
18
|
+
const name = new Signal.State("Alice");
|
|
19
|
+
console.log(name.get()); // 'Alice'
|
|
20
|
+
name.set("Bob");
|
|
21
|
+
console.log(name.get()); // 'Bob'
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Type Parameters
|
|
25
|
+
|
|
26
|
+
| Type Parameter |
|
|
27
|
+
| -------------- |
|
|
28
|
+
| `T` |
|
|
29
|
+
|
|
30
|
+
## Methods
|
|
31
|
+
|
|
32
|
+
### get()
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
get(): T;
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Defined in: [packages/play-signals/src/types.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-signals/src/types.ts#L59)
|
|
39
|
+
|
|
40
|
+
Read current value and track as dependency
|
|
41
|
+
|
|
42
|
+
#### Returns
|
|
43
|
+
|
|
44
|
+
`T`
|
|
45
|
+
|
|
46
|
+
Current value of the signal
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
### set()
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
set(value): void;
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Defined in: [packages/play-signals/src/types.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-signals/src/types.ts#L66)
|
|
57
|
+
|
|
58
|
+
Write new value and notify watchers if changed
|
|
59
|
+
|
|
60
|
+
#### Parameters
|
|
61
|
+
|
|
62
|
+
| Parameter | Type | Description |
|
|
63
|
+
| --------- | ---- | ---------------- |
|
|
64
|
+
| `value` | `T` | New value to set |
|
|
65
|
+
|
|
66
|
+
#### Returns
|
|
67
|
+
|
|
68
|
+
`void`
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-signals](../README.md) / SignalWatcher
|
|
2
|
+
|
|
3
|
+
# Interface: SignalWatcher
|
|
4
|
+
|
|
5
|
+
Defined in: [packages/play-signals/src/types.ts:167](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-signals/src/types.ts#L167)
|
|
6
|
+
|
|
7
|
+
Watcher for observing signal changes and scheduling effects
|
|
8
|
+
|
|
9
|
+
Signal.subtle.Watcher enables observing multiple signals and batching updates.
|
|
10
|
+
This is the low-level primitive used by frameworks to implement reactive effects.
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { Signal } from "@xmachines/play-signals";
|
|
16
|
+
|
|
17
|
+
const count = new Signal.State(0);
|
|
18
|
+
const doubled = new Signal.Computed(() => count.get() * 2);
|
|
19
|
+
|
|
20
|
+
const watcher = new Signal.subtle.Watcher(() => {
|
|
21
|
+
queueMicrotask(() => {
|
|
22
|
+
const pending = watcher.getPending();
|
|
23
|
+
console.log("Signals changed:", pending.length);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
watcher.watch(count);
|
|
28
|
+
watcher.watch(doubled);
|
|
29
|
+
|
|
30
|
+
count.set(5); // Notification scheduled via microtask
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Methods
|
|
34
|
+
|
|
35
|
+
### getPending()
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
getPending(): (
|
|
39
|
+
| SignalState<unknown>
|
|
40
|
+
| SignalComputed<unknown>)[];
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Defined in: [packages/play-signals/src/types.ts:187](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-signals/src/types.ts#L187)
|
|
44
|
+
|
|
45
|
+
Get signals that changed since last check
|
|
46
|
+
|
|
47
|
+
#### Returns
|
|
48
|
+
|
|
49
|
+
(
|
|
50
|
+
\| [`SignalState`](SignalState.md)\<`unknown`\>
|
|
51
|
+
\| [`SignalComputed`](SignalComputed.md)\<`unknown`\>)[]
|
|
52
|
+
|
|
53
|
+
Array of signals that have pending updates
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
### unwatch()
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
unwatch(signal): void;
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Defined in: [packages/play-signals/src/types.ts:180](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-signals/src/types.ts#L180)
|
|
64
|
+
|
|
65
|
+
Stop watching a signal
|
|
66
|
+
|
|
67
|
+
#### Parameters
|
|
68
|
+
|
|
69
|
+
| Parameter | Type | Description |
|
|
70
|
+
| --------- | ----------------------------------------------------------------------------------------------------- | ------------------------ |
|
|
71
|
+
| `signal` | \| [`SignalState`](SignalState.md)\<`unknown`\> \| [`SignalComputed`](SignalComputed.md)\<`unknown`\> | Signal to stop observing |
|
|
72
|
+
|
|
73
|
+
#### Returns
|
|
74
|
+
|
|
75
|
+
`void`
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### watch()
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
watch(signal): void;
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Defined in: [packages/play-signals/src/types.ts:173](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-signals/src/types.ts#L173)
|
|
86
|
+
|
|
87
|
+
Start watching a signal for changes
|
|
88
|
+
|
|
89
|
+
#### Parameters
|
|
90
|
+
|
|
91
|
+
| Parameter | Type | Description |
|
|
92
|
+
| --------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------- |
|
|
93
|
+
| `signal` | \| [`SignalState`](SignalState.md)\<`unknown`\> \| [`SignalComputed`](SignalComputed.md)\<`unknown`\> | Signal to observe (State or Computed) |
|
|
94
|
+
|
|
95
|
+
#### Returns
|
|
96
|
+
|
|
97
|
+
`void`
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[Documentation](../../../../README.md) / [@xmachines/play-signals](../../README.md) / Signal
|
|
2
|
+
|
|
3
|
+
# Signal
|
|
4
|
+
|
|
5
|
+
## Namespaces
|
|
6
|
+
|
|
7
|
+
- [subtle](namespaces/subtle/README.md)
|
|
8
|
+
|
|
9
|
+
## Classes
|
|
10
|
+
|
|
11
|
+
- [Computed](classes/Computed.md)
|
|
12
|
+
- [State](classes/State.md)
|
|
13
|
+
|
|
14
|
+
## Interfaces
|
|
15
|
+
|
|
16
|
+
- [Options](interfaces/Options.md)
|
|
17
|
+
|
|
18
|
+
## Variables
|
|
19
|
+
|
|
20
|
+
- [isComputed](variables/isComputed.md)
|
|
21
|
+
- [isState](variables/isState.md)
|
|
22
|
+
- [isWatcher](variables/isWatcher.md)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
[Documentation](../../../../../README.md) / [@xmachines/play-signals](../../../README.md) / [Signal](../README.md) / Computed
|
|
2
|
+
|
|
3
|
+
# Class: Computed\<T\>
|
|
4
|
+
|
|
5
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:15
|
|
6
|
+
|
|
7
|
+
## Type Parameters
|
|
8
|
+
|
|
9
|
+
| Type Parameter |
|
|
10
|
+
| -------------- |
|
|
11
|
+
| `T` |
|
|
12
|
+
|
|
13
|
+
## Constructors
|
|
14
|
+
|
|
15
|
+
### Constructor
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
new Computed<T>(computation, options?): Computed<T>;
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:18
|
|
22
|
+
|
|
23
|
+
#### Parameters
|
|
24
|
+
|
|
25
|
+
| Parameter | Type |
|
|
26
|
+
| ------------- | -------------------------------------------- |
|
|
27
|
+
| `computation` | () => `T` |
|
|
28
|
+
| `options?` | [`Options`](../interfaces/Options.md)\<`T`\> |
|
|
29
|
+
|
|
30
|
+
#### Returns
|
|
31
|
+
|
|
32
|
+
`Computed`\<`T`\>
|
|
33
|
+
|
|
34
|
+
## Properties
|
|
35
|
+
|
|
36
|
+
| Property | Modifier | Type | Defined in |
|
|
37
|
+
| ----------------------------------- | ---------- | --------------------- | ------------------------------------------------- |
|
|
38
|
+
| <a id="property-node"></a> `[NODE]` | `readonly` | `ComputedNode`\<`T`\> | node_modules/signal-polyfill/dist/wrapper.d.ts:17 |
|
|
39
|
+
|
|
40
|
+
## Methods
|
|
41
|
+
|
|
42
|
+
### get()
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
get(): T;
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:19
|
|
49
|
+
|
|
50
|
+
#### Returns
|
|
51
|
+
|
|
52
|
+
`T`
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
[Documentation](../../../../../README.md) / [@xmachines/play-signals](../../../README.md) / [Signal](../README.md) / State
|
|
2
|
+
|
|
3
|
+
# Class: State\<T\>
|
|
4
|
+
|
|
5
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:8
|
|
6
|
+
|
|
7
|
+
## Type Parameters
|
|
8
|
+
|
|
9
|
+
| Type Parameter |
|
|
10
|
+
| -------------- |
|
|
11
|
+
| `T` |
|
|
12
|
+
|
|
13
|
+
## Constructors
|
|
14
|
+
|
|
15
|
+
### Constructor
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
new State<T>(initialValue, options?): State<T>;
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:11
|
|
22
|
+
|
|
23
|
+
#### Parameters
|
|
24
|
+
|
|
25
|
+
| Parameter | Type |
|
|
26
|
+
| -------------- | -------------------------------------------- |
|
|
27
|
+
| `initialValue` | `T` |
|
|
28
|
+
| `options?` | [`Options`](../interfaces/Options.md)\<`T`\> |
|
|
29
|
+
|
|
30
|
+
#### Returns
|
|
31
|
+
|
|
32
|
+
`State`\<`T`\>
|
|
33
|
+
|
|
34
|
+
## Properties
|
|
35
|
+
|
|
36
|
+
| Property | Modifier | Type | Defined in |
|
|
37
|
+
| ----------------------------------- | ---------- | ------------------- | ------------------------------------------------- |
|
|
38
|
+
| <a id="property-node"></a> `[NODE]` | `readonly` | `SignalNode`\<`T`\> | node_modules/signal-polyfill/dist/wrapper.d.ts:10 |
|
|
39
|
+
|
|
40
|
+
## Methods
|
|
41
|
+
|
|
42
|
+
### get()
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
get(): T;
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:12
|
|
49
|
+
|
|
50
|
+
#### Returns
|
|
51
|
+
|
|
52
|
+
`T`
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
### set()
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
set(newValue): void;
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:13
|
|
63
|
+
|
|
64
|
+
#### Parameters
|
|
65
|
+
|
|
66
|
+
| Parameter | Type |
|
|
67
|
+
| ---------- | ---- |
|
|
68
|
+
| `newValue` | `T` |
|
|
69
|
+
|
|
70
|
+
#### Returns
|
|
71
|
+
|
|
72
|
+
`void`
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[Documentation](../../../../../README.md) / [@xmachines/play-signals](../../../README.md) / [Signal](../README.md) / Options
|
|
2
|
+
|
|
3
|
+
# Interface: Options\<T\>
|
|
4
|
+
|
|
5
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:41
|
|
6
|
+
|
|
7
|
+
## Type Parameters
|
|
8
|
+
|
|
9
|
+
| Type Parameter |
|
|
10
|
+
| -------------- |
|
|
11
|
+
| `T` |
|
|
12
|
+
|
|
13
|
+
## Properties
|
|
14
|
+
|
|
15
|
+
| Property | Type | Defined in |
|
|
16
|
+
| ---------------------------------------------- | -------------------------------- | ------------------------------------------------- |
|
|
17
|
+
| <a id="property-unwatched"></a> `[unwatched]?` | (`this`) => `void` | node_modules/signal-polyfill/dist/wrapper.d.ts:44 |
|
|
18
|
+
| <a id="property-watched"></a> `[watched]?` | (`this`) => `void` | node_modules/signal-polyfill/dist/wrapper.d.ts:43 |
|
|
19
|
+
| <a id="property-equals"></a> `equals?` | (`this`, `t`, `t2`) => `boolean` | node_modules/signal-polyfill/dist/wrapper.d.ts:42 |
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[Documentation](../../../../../../README.md) / [@xmachines/play-signals](../../../../README.md) / [Signal](../../README.md) / subtle
|
|
2
|
+
|
|
3
|
+
# subtle
|
|
4
|
+
|
|
5
|
+
## Classes
|
|
6
|
+
|
|
7
|
+
- [Watcher](classes/Watcher.md)
|
|
8
|
+
|
|
9
|
+
## Variables
|
|
10
|
+
|
|
11
|
+
- [unwatched](variables/unwatched.md)
|
|
12
|
+
- [watched](variables/watched.md)
|
|
13
|
+
|
|
14
|
+
## Functions
|
|
15
|
+
|
|
16
|
+
- [currentComputed](functions/currentComputed.md)
|
|
17
|
+
- [hasSinks](functions/hasSinks.md)
|
|
18
|
+
- [hasSources](functions/hasSources.md)
|
|
19
|
+
- [introspectSinks](functions/introspectSinks.md)
|
|
20
|
+
- [introspectSources](functions/introspectSources.md)
|
|
21
|
+
- [untrack](functions/untrack.md)
|