@fluixi/reactive 1.0.0-alpha.83 → 1.0.0-alpha.85
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/dist/cdn/reactive.cjs +2722 -1
- package/dist/cdn/reactive.global.js +2 -1
- package/dist/cdn/reactive.mjs +2706 -1
- package/dist/cdn/signal.cjs +299 -1
- package/dist/cdn/signal.d.ts +1 -1
- package/dist/cdn/signal.global.js +2 -1
- package/dist/cdn/signal.js +1 -1
- package/dist/cdn/signal.mjs +276 -1
- package/dist/index.cjs +2722 -1
- package/dist/index.mjs +2706 -1
- package/dist/lib/index.cjs +2723 -1
- package/dist/lib/index.js +1 -1
- package/dist/lib/index.mjs +2708 -1
- package/dist/lib/observable/index.cjs +386 -1
- package/dist/lib/observable/index.mjs +364 -1
- package/dist/lib/observable/observable.cjs +384 -1
- package/dist/lib/observable/observable.d.ts +0 -137
- package/dist/lib/observable/observable.d.ts.map +1 -1
- package/dist/lib/observable/observable.js +0 -71
- package/dist/lib/observable/observable.mjs +361 -1
- package/dist/lib/observable/subscription.cjs +180 -1
- package/dist/lib/observable/subscription.d.ts +0 -12
- package/dist/lib/observable/subscription.d.ts.map +1 -1
- package/dist/lib/observable/subscription.js +0 -12
- package/dist/lib/observable/subscription.mjs +157 -1
- package/dist/lib/observable/types.cjs +18 -1
- package/dist/lib/observable/types.d.ts.map +1 -1
- package/dist/lib/predicates.cjs +44 -1
- package/dist/lib/predicates.d.ts +2 -2
- package/dist/lib/predicates.js +2 -2
- package/dist/lib/predicates.mjs +23 -1
- package/dist/lib/signal/api.cjs +571 -1
- package/dist/lib/signal/api.d.ts +211 -1
- package/dist/lib/signal/api.d.ts.map +1 -1
- package/dist/lib/signal/api.js +207 -12
- package/dist/lib/signal/api.mjs +548 -1
- package/dist/lib/signal/cached-resource.cjs +672 -1
- package/dist/lib/signal/cached-resource.d.ts +28 -16
- package/dist/lib/signal/cached-resource.d.ts.map +1 -1
- package/dist/lib/signal/cached-resource.js +35 -29
- package/dist/lib/signal/cached-resource.mjs +650 -1
- package/dist/lib/signal/graph/children.cjs +325 -1
- package/dist/lib/signal/graph/children.js +1 -1
- package/dist/lib/signal/graph/children.mjs +302 -1
- package/dist/lib/signal/graph/compat.cjs +578 -1
- package/dist/lib/signal/graph/compat.d.ts +13 -13
- package/dist/lib/signal/graph/compat.d.ts.map +1 -1
- package/dist/lib/signal/graph/compat.js +33 -31
- package/dist/lib/signal/graph/compat.mjs +556 -1
- package/dist/lib/signal/graph/core.cjs +295 -1
- package/dist/lib/signal/graph/core.d.ts +28 -24
- package/dist/lib/signal/graph/core.d.ts.map +1 -1
- package/dist/lib/signal/graph/core.js +38 -31
- package/dist/lib/signal/graph/core.mjs +273 -1
- package/dist/lib/signal/graph/debounced.cjs +668 -1
- package/dist/lib/signal/graph/debounced.d.ts +5 -5
- package/dist/lib/signal/graph/debounced.d.ts.map +1 -1
- package/dist/lib/signal/graph/debounced.js +5 -5
- package/dist/lib/signal/graph/debounced.mjs +645 -1
- package/dist/lib/signal/graph/derived.cjs +496 -1
- package/dist/lib/signal/graph/derived.d.ts +1 -1
- package/dist/lib/signal/graph/derived.js +1 -1
- package/dist/lib/signal/graph/derived.mjs +473 -1
- package/dist/lib/signal/graph/detect.cjs +66 -1
- package/dist/lib/signal/graph/detect.mjs +45 -1
- package/dist/lib/signal/graph/error-boundary.cjs +301 -1
- package/dist/lib/signal/graph/error-boundary.js +3 -3
- package/dist/lib/signal/graph/error-boundary.mjs +278 -1
- package/dist/lib/signal/graph/index.cjs +305 -1
- package/dist/lib/signal/graph/index.d.ts +7 -6
- package/dist/lib/signal/graph/index.d.ts.map +1 -1
- package/dist/lib/signal/graph/index.js +7 -6
- package/dist/lib/signal/graph/index.mjs +283 -1
- package/dist/lib/signal/graph/observe.cjs +163 -1
- package/dist/lib/signal/graph/observe.d.ts +8 -8
- package/dist/lib/signal/graph/observe.js +5 -5
- package/dist/lib/signal/graph/observe.mjs +140 -1
- package/dist/lib/signal/graph/resource.cjs +620 -1
- package/dist/lib/signal/graph/resource.d.ts +1 -1
- package/dist/lib/signal/graph/resource.js +7 -8
- package/dist/lib/signal/graph/resource.mjs +597 -1
- package/dist/lib/signal/graph/runtime.cjs +501 -1
- package/dist/lib/signal/graph/runtime.d.ts +7 -7
- package/dist/lib/signal/graph/runtime.d.ts.map +1 -1
- package/dist/lib/signal/graph/runtime.js +34 -30
- package/dist/lib/signal/graph/runtime.mjs +478 -1
- package/dist/lib/signal/graph/signal-next.cjs +1208 -1
- package/dist/lib/signal/graph/signal-next.d.ts +5 -5
- package/dist/lib/signal/graph/signal-next.d.ts.map +1 -1
- package/dist/lib/signal/graph/signal-next.js +14 -12
- package/dist/lib/signal/graph/signal-next.mjs +1186 -1
- package/dist/lib/signal/graph/ssr-hooks.cjs +60 -1
- package/dist/lib/signal/graph/ssr-hooks.d.ts +6 -7
- package/dist/lib/signal/graph/ssr-hooks.d.ts.map +1 -1
- package/dist/lib/signal/graph/ssr-hooks.js +6 -7
- package/dist/lib/signal/graph/ssr-hooks.mjs +39 -1
- package/dist/lib/signal/graph/state.cjs +72 -1
- package/dist/lib/signal/graph/state.d.ts +41 -10
- package/dist/lib/signal/graph/state.d.ts.map +1 -1
- package/dist/lib/signal/graph/state.js +83 -22
- package/dist/lib/signal/graph/state.mjs +49 -1
- package/dist/lib/signal/graph/suspense.cjs +301 -1
- package/dist/lib/signal/graph/suspense.js +4 -4
- package/dist/lib/signal/graph/suspense.mjs +278 -1
- package/dist/lib/signal/index-legacy.cjs +2540 -1
- package/dist/lib/signal/index-legacy.d.ts +1 -1
- package/dist/lib/signal/index-legacy.js +1 -1
- package/dist/lib/signal/index-legacy.mjs +2518 -1
- package/dist/lib/signal/index.cjs +1275 -1
- package/dist/lib/signal/index.d.ts +3 -2
- package/dist/lib/signal/index.d.ts.map +1 -1
- package/dist/lib/signal/index.js +7 -4
- package/dist/lib/signal/index.mjs +1253 -1
- package/dist/lib/signal/list.cjs +549 -1
- package/dist/lib/signal/list.d.ts +5 -5
- package/dist/lib/signal/list.js +5 -5
- package/dist/lib/signal/list.mjs +526 -1
- package/dist/lib/signal/resource-api.cjs +626 -1
- package/dist/lib/signal/resource-api.d.ts +5 -5
- package/dist/lib/signal/resource-api.js +5 -5
- package/dist/lib/signal/resource-api.mjs +603 -1
- package/dist/lib/signal/signal.cjs +2023 -1
- package/dist/lib/signal/signal.d.ts +4 -4
- package/dist/lib/signal/signal.d.ts.map +1 -1
- package/dist/lib/signal/signal.js +22 -23
- package/dist/lib/signal/signal.mjs +2000 -1
- package/dist/lib/signal/types.cjs +38 -1
- package/dist/lib/signal/types.d.ts.map +1 -1
- package/dist/lib/signal/types.js +2 -2
- package/dist/lib/signal/types.mjs +17 -1
- package/dist/lib/signal/utilities.cjs +1012 -1
- package/dist/lib/signal/utilities.d.ts +0 -108
- package/dist/lib/signal/utilities.d.ts.map +1 -1
- package/dist/lib/signal/utilities.js +0 -158
- package/dist/lib/signal/utilities.mjs +990 -1
- package/dist/lib/store/api.cjs +661 -1
- package/dist/lib/store/api.d.ts +33 -0
- package/dist/lib/store/api.d.ts.map +1 -1
- package/dist/lib/store/api.js +41 -8
- package/dist/lib/store/api.mjs +645 -1
- package/dist/lib/store/index.cjs +740 -1
- package/dist/lib/store/index.js +1 -1
- package/dist/lib/store/index.mjs +725 -1
- package/dist/lib/store/setter.types.cjs +18 -1
- package/dist/lib/store/setter.types.d.ts +43 -3
- package/dist/lib/store/setter.types.d.ts.map +1 -1
- package/dist/lib/store/store.cjs +707 -1
- package/dist/lib/store/store.d.ts +72 -0
- package/dist/lib/store/store.d.ts.map +1 -1
- package/dist/lib/store/store.js +238 -8
- package/dist/lib/store/store.mjs +693 -1
- package/dist/lib/store/types.cjs +18 -1
- package/dist/lib/store/types.d.ts +1 -1
- package/dist/lib/store/types.d.ts.map +1 -1
- package/dist/lib/store/utils.cjs +43 -1
- package/dist/lib/store/utils.d.ts +1 -1
- package/dist/lib/store/utils.js +1 -1
- package/dist/lib/store/utils.mjs +22 -1
- package/dist/lib/subject.cjs +450 -1
- package/dist/lib/subject.js +3 -91
- package/dist/lib/subject.mjs +427 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/version.generated.cjs +27 -1
- package/dist/version.generated.d.ts +1 -1
- package/dist/version.generated.js +2 -2
- package/dist/version.generated.mjs +7 -1
- package/package.json +5 -4
package/dist/lib/store/api.d.ts
CHANGED
|
@@ -3,5 +3,38 @@ import type { Immutable, Store, StoreOptions } from './store.js';
|
|
|
3
3
|
export type StoreHandle<T> = Immutable<T> & {
|
|
4
4
|
set: Store<T>['set'];
|
|
5
5
|
};
|
|
6
|
+
/**
|
|
7
|
+
* A reactive store you read by property access and write with `.set()`.
|
|
8
|
+
*
|
|
9
|
+
* Tracking is per key and lazy: a signal is created for a key the first time something
|
|
10
|
+
* reads it, so an effect reading one field is untouched by a write to another. Nested
|
|
11
|
+
* objects and arrays are proxied on access, to whatever depth is reached.
|
|
12
|
+
*
|
|
13
|
+
* `options.equals` compares whole states, not individual keys, and `options.name` is
|
|
14
|
+
* what a devtools panel labels the store with.
|
|
15
|
+
*
|
|
16
|
+
* @example An object argument patches the keys it names and leaves the rest:
|
|
17
|
+
* ```ts
|
|
18
|
+
* const user = store({ name: 'Ada', role: 'admin' });
|
|
19
|
+
*
|
|
20
|
+
* effect(() => console.log(user.name)); // subscribes to `name` only
|
|
21
|
+
* user.set({ role: 'owner' }); // the effect does not re-run
|
|
22
|
+
* user.set({ name: 'Grace' }); // now it does
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @example A dot path writes deep without rebuilding the tree above it. Array indices
|
|
26
|
+
* are segments like any other:
|
|
27
|
+
* ```ts
|
|
28
|
+
* const state = store({ todos: [{ done: false }] });
|
|
29
|
+
* state.set('todos.0.done', true);
|
|
30
|
+
* state.set('todos.0.done', (done) => !done); // or derive from the current value
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @example A `set` key of your own is unreachable through this form, because the setter
|
|
34
|
+
* occupies the name. `createStore` hands back a tuple and has no such collision:
|
|
35
|
+
* ```ts
|
|
36
|
+
* const [config, setConfig] = createStore({ set: 'a value' });
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
6
39
|
export declare function store<T>(initialState: T, options?: StoreOptions<T>): StoreHandle<T>;
|
|
7
40
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/lib/store/api.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjE,0DAA0D;AAC1D,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;CAAE,CAAC;AAErE,wBAAgB,KAAK,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAUnF"}
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/lib/store/api.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjE,0DAA0D;AAC1D,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;CAAE,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAUnF"}
|
package/dist/lib/store/api.js
CHANGED
|
@@ -1,23 +1,56 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `store
|
|
2
|
+
* `store`: `createStore` as one binding instead of a tuple.
|
|
3
3
|
*
|
|
4
4
|
* const user = store({ name: 'Ada' });
|
|
5
5
|
* user.name; // reads, and tracks that key
|
|
6
6
|
* user.set({ name: 'Grace' }); // writes
|
|
7
7
|
*
|
|
8
|
-
* It returns the reactive state itself
|
|
9
|
-
* `signal
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
8
|
+
* It returns the reactive state itself with `set` on it, which is where it parts from
|
|
9
|
+
* `signal`. A signal needs `.get()` because a value has no other way to be read. A
|
|
10
|
+
* store is an object, and property access is already the read, so `user.get().name`
|
|
11
|
+
* would add a call for the sake of looking uniform and lose the thing that makes a
|
|
12
|
+
* store worth using.
|
|
13
13
|
*
|
|
14
|
-
* Reads still subscribe per key, so an effect over `user.name`
|
|
14
|
+
* Reads still subscribe per key, so an effect over `user.name` does not re-run when
|
|
15
15
|
* `user.role` changes.
|
|
16
16
|
*
|
|
17
17
|
* The one cost: a `set` key in your own state is shadowed by the setter. Reach for
|
|
18
|
-
* `createStore`
|
|
18
|
+
* `createStore` when you need that name, which is unchanged.
|
|
19
19
|
*/
|
|
20
20
|
import { createStore } from './store.js';
|
|
21
|
+
/**
|
|
22
|
+
* A reactive store you read by property access and write with `.set()`.
|
|
23
|
+
*
|
|
24
|
+
* Tracking is per key and lazy: a signal is created for a key the first time something
|
|
25
|
+
* reads it, so an effect reading one field is untouched by a write to another. Nested
|
|
26
|
+
* objects and arrays are proxied on access, to whatever depth is reached.
|
|
27
|
+
*
|
|
28
|
+
* `options.equals` compares whole states, not individual keys, and `options.name` is
|
|
29
|
+
* what a devtools panel labels the store with.
|
|
30
|
+
*
|
|
31
|
+
* @example An object argument patches the keys it names and leaves the rest:
|
|
32
|
+
* ```ts
|
|
33
|
+
* const user = store({ name: 'Ada', role: 'admin' });
|
|
34
|
+
*
|
|
35
|
+
* effect(() => console.log(user.name)); // subscribes to `name` only
|
|
36
|
+
* user.set({ role: 'owner' }); // the effect does not re-run
|
|
37
|
+
* user.set({ name: 'Grace' }); // now it does
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @example A dot path writes deep without rebuilding the tree above it. Array indices
|
|
41
|
+
* are segments like any other:
|
|
42
|
+
* ```ts
|
|
43
|
+
* const state = store({ todos: [{ done: false }] });
|
|
44
|
+
* state.set('todos.0.done', true);
|
|
45
|
+
* state.set('todos.0.done', (done) => !done); // or derive from the current value
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* @example A `set` key of your own is unreachable through this form, because the setter
|
|
49
|
+
* occupies the name. `createStore` hands back a tuple and has no such collision:
|
|
50
|
+
* ```ts
|
|
51
|
+
* const [config, setConfig] = createStore({ set: 'a value' });
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
21
54
|
export function store(initialState, options) {
|
|
22
55
|
const [state, set] = createStore(initialState, options);
|
|
23
56
|
// A thin wrapper rather than assigning onto the state: the store proxy is the tracking
|