synstate-preact-hooks 0.1.1 → 1.0.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 +112 -0
- package/dist/create-boolean-state.d.mts +1 -0
- package/dist/create-boolean-state.d.mts.map +1 -1
- package/dist/create-boolean-state.mjs +1 -0
- package/dist/create-boolean-state.mjs.map +1 -1
- package/dist/create-reducer.d.mts +1 -0
- package/dist/create-reducer.d.mts.map +1 -1
- package/dist/create-reducer.mjs +2 -2
- package/dist/create-reducer.mjs.map +1 -1
- package/dist/create-state.d.mts +1 -0
- package/dist/create-state.d.mts.map +1 -1
- package/dist/create-state.mjs +1 -0
- package/dist/create-state.mjs.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/synstate.d.mts +1 -1
- package/dist/synstate.d.mts.map +1 -1
- package/dist/synstate.mjs +1 -1
- package/package.json +7 -9
- package/src/create-boolean-state.mts +2 -0
- package/src/create-reducer.mts +3 -2
- package/src/create-state.mts +2 -0
- package/src/synstate.mts +7 -15
package/README.md
CHANGED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# SynState Preact hooks
|
|
2
|
+
|
|
3
|
+
synstate-preact-hooks re-exports all exports from synstate except for `createState`, `createReducer`, and `createBooleanState`, and exports modified versions of those creation functions.
|
|
4
|
+
|
|
5
|
+
The first element of the array returned by the `createState<T>` function provided by synstate-preact-hooks is changed from `InitializedObservable<T>` to a React hook `() => T`, and the `InitializedObservable<T>` has been moved to the `state` property in the object at index 2.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm add synstate-preact-hooks
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or with other package managers:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Yarn
|
|
17
|
+
yarn add synstate-preact-hooks
|
|
18
|
+
|
|
19
|
+
# pnpm
|
|
20
|
+
pnpm add synstate-preact-hooks
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Quick Start
|
|
24
|
+
|
|
25
|
+
### Simple State Management
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
import type * as Preact from 'preact';
|
|
29
|
+
import { createState } from 'synstate-preact-hooks';
|
|
30
|
+
|
|
31
|
+
// Global state (outside component)
|
|
32
|
+
const [useUserState, setUserState] = createState({
|
|
33
|
+
name: '',
|
|
34
|
+
email: '',
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const UserProfile = (): Preact.JSX.Element => {
|
|
38
|
+
const user = useUserState();
|
|
39
|
+
|
|
40
|
+
return (
|
|
41
|
+
<div>
|
|
42
|
+
<p>{`Name: ${user.name}`}</p>
|
|
43
|
+
<button
|
|
44
|
+
onClick={() => {
|
|
45
|
+
setUserState({
|
|
46
|
+
name: 'Alice',
|
|
47
|
+
email: 'alice@example.com',
|
|
48
|
+
});
|
|
49
|
+
}}
|
|
50
|
+
>
|
|
51
|
+
{'Set User'}
|
|
52
|
+
</button>
|
|
53
|
+
</div>
|
|
54
|
+
);
|
|
55
|
+
};
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
With `resetState`, `updateState`, `state` APIs:
|
|
59
|
+
|
|
60
|
+
```tsx
|
|
61
|
+
import type * as Preact from 'preact';
|
|
62
|
+
import { createState } from 'synstate-preact-hooks';
|
|
63
|
+
|
|
64
|
+
// Global state (outside component)
|
|
65
|
+
const [
|
|
66
|
+
useUserState,
|
|
67
|
+
setUserState,
|
|
68
|
+
{
|
|
69
|
+
resetState: resetUserState,
|
|
70
|
+
updateState: updateUserState,
|
|
71
|
+
state: userState,
|
|
72
|
+
},
|
|
73
|
+
] = createState({
|
|
74
|
+
name: '',
|
|
75
|
+
email: '',
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
userState.subscribe((u) => {
|
|
79
|
+
console.log('User is updated:', u);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
const UserProfile = (): Preact.JSX.Element => {
|
|
83
|
+
const user = useUserState();
|
|
84
|
+
|
|
85
|
+
return (
|
|
86
|
+
<div>
|
|
87
|
+
<p>{`Name: ${user.name}`}</p>
|
|
88
|
+
<button
|
|
89
|
+
onClick={() => {
|
|
90
|
+
setUserState({
|
|
91
|
+
name: 'Alice',
|
|
92
|
+
email: 'alice@example.com',
|
|
93
|
+
});
|
|
94
|
+
}}
|
|
95
|
+
>
|
|
96
|
+
{'Set User'}
|
|
97
|
+
</button>
|
|
98
|
+
<button
|
|
99
|
+
onClick={() => {
|
|
100
|
+
updateUserState((prev) => ({
|
|
101
|
+
name: prev.name,
|
|
102
|
+
email: '',
|
|
103
|
+
}));
|
|
104
|
+
}}
|
|
105
|
+
>
|
|
106
|
+
{'Reset email'}
|
|
107
|
+
</button>
|
|
108
|
+
<button onClick={resetUserState}>{'Reset'}</button>
|
|
109
|
+
</div>
|
|
110
|
+
);
|
|
111
|
+
};
|
|
112
|
+
```
|
|
@@ -8,5 +8,6 @@ export declare const createBooleanState: (initialState: boolean) => readonly [us
|
|
|
8
8
|
updateState: (updateFn: (prev: boolean) => boolean) => boolean;
|
|
9
9
|
resetState: () => boolean;
|
|
10
10
|
getSnapshot: () => boolean;
|
|
11
|
+
initialState: boolean;
|
|
11
12
|
}>];
|
|
12
13
|
//# sourceMappingURL=create-boolean-state.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-boolean-state.d.mts","sourceRoot":"","sources":["../src/create-boolean-state.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,kBAAkB,GAC7B,cAAc,OAAO,KACpB,SAAS,CACV,eAAe,EAAE,MAAM,OAAO,EAC9B,QAAQ,CAAC;IACP,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;IACrC,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,KAAK,OAAO,CAAC;IAC/D,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"create-boolean-state.d.mts","sourceRoot":"","sources":["../src/create-boolean-state.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,kBAAkB,GAC7B,cAAc,OAAO,KACpB,SAAS,CACV,eAAe,EAAE,MAAM,OAAO,EAC9B,QAAQ,CAAC;IACP,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;IACrC,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,KAAK,OAAO,CAAC;IAC/D,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC,CA+BH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-boolean-state.mjs","sources":["../src/create-boolean-state.mts"],"sourcesContent":[null],"names":["createBooleanStateBase"],"mappings":";;;AAMO,MAAM,kBAAkB,GAAG,CAChC,YAAqB,
|
|
1
|
+
{"version":3,"file":"create-boolean-state.mjs","sources":["../src/create-boolean-state.mts"],"sourcesContent":[null],"names":["createBooleanStateBase"],"mappings":";;;AAMO,MAAM,kBAAkB,GAAG,CAChC,YAAqB,KAcnB;IACF,MAAM,CACJ,KAAK,EACL,EACE,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,WAAW,EACX,UAAU,EACV,WAAW,GACZ,EACF,GAAGA,oBAAsB,CAAC,YAAY,CAAC;IAExC,MAAM,eAAe,GAAG,MAAe,kBAAkB,CAAC,KAAK,CAAC;IAEhE,OAAO;QACL,eAAe;AACf,QAAA;YACE,KAAK;YACL,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,MAAM;YACN,WAAW;YACX,UAAU;YACV,WAAW;YACX,YAAY;AACb,SAAA;KACO;AACZ;;;;"}
|
|
@@ -2,5 +2,6 @@ import { type InitializedObservable } from 'synstate';
|
|
|
2
2
|
export declare const createReducer: <S, A>(reducer: Reducer<S, A>, initialState: S) => readonly [useCurrentValue: () => S, dispatch: (action: A) => S, Readonly<{
|
|
3
3
|
state: InitializedObservable<S>;
|
|
4
4
|
getSnapshot: () => S;
|
|
5
|
+
initialState: S;
|
|
5
6
|
}>];
|
|
6
7
|
//# sourceMappingURL=create-reducer.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-reducer.d.mts","sourceRoot":"","sources":["../src/create-reducer.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,EAChC,SAAS,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,cAAc,CAAC,KACd,SAAS,CACV,eAAe,EAAE,MAAM,CAAC,EACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAC1B,QAAQ,CAAC;IACP,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-reducer.d.mts","sourceRoot":"","sources":["../src/create-reducer.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,EAChC,SAAS,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,cAAc,CAAC,KACd,SAAS,CACV,eAAe,EAAE,MAAM,CAAC,EACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAC1B,QAAQ,CAAC;IACP,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC,CAAC;IACrB,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC,CAUH,CAAC"}
|
package/dist/create-reducer.mjs
CHANGED
|
@@ -2,9 +2,9 @@ import { createReducer as createReducer$1 } from 'synstate';
|
|
|
2
2
|
import { useObservableValue } from './use-observable-value.mjs';
|
|
3
3
|
|
|
4
4
|
const createReducer = (reducer, initialState) => {
|
|
5
|
-
const [state, dispatch, getSnapshot] = createReducer$1(reducer, initialState);
|
|
5
|
+
const [state, dispatch, { getSnapshot }] = createReducer$1(reducer, initialState);
|
|
6
6
|
const useCurrentValue = () => useObservableValue(state);
|
|
7
|
-
return [useCurrentValue, dispatch, { state, getSnapshot }];
|
|
7
|
+
return [useCurrentValue, dispatch, { state, getSnapshot, initialState }];
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
export { createReducer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-reducer.mjs","sources":["../src/create-reducer.mts"],"sourcesContent":[null],"names":["createReducerBase"],"mappings":";;;MAMa,aAAa,GAAG,CAC3B,OAAsB,EACtB,YAAe,
|
|
1
|
+
{"version":3,"file":"create-reducer.mjs","sources":["../src/create-reducer.mts"],"sourcesContent":[null],"names":["createReducerBase"],"mappings":";;;MAMa,aAAa,GAAG,CAC3B,OAAsB,EACtB,YAAe,KASb;AACF,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,GAAGA,eAAiB,CAC1D,OAAO,EACP,YAAY,CACb;IAED,MAAM,eAAe,GAAG,MAAS,kBAAkB,CAAC,KAAK,CAAC;AAE1D,IAAA,OAAO,CAAC,eAAe,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAC1E;;;;"}
|
package/dist/create-state.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-state.d.mts","sourceRoot":"","sources":["../src/create-state.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,WAAW,GAAI,CAAC,EAC3B,cAAc,CAAC,KACd,SAAS,CACV,eAAe,EAAE,MAAM,CAAC,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACrB,QAAQ,CAAC;IACP,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAChC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"create-state.d.mts","sourceRoot":"","sources":["../src/create-state.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,WAAW,GAAI,CAAC,EAC3B,cAAc,CAAC,KACd,SAAS,CACV,eAAe,EAAE,MAAM,CAAC,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACrB,QAAQ,CAAC;IACP,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAChC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,CAAC;IACrB,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC,CAkBH,CAAC"}
|
package/dist/create-state.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-state.mjs","sources":["../src/create-state.mts"],"sourcesContent":[null],"names":["createStateBase"],"mappings":";;;AAMO,MAAM,WAAW,GAAG,CACzB,YAAe,
|
|
1
|
+
{"version":3,"file":"create-state.mjs","sources":["../src/create-state.mts"],"sourcesContent":[null],"names":["createStateBase"],"mappings":";;;AAMO,MAAM,WAAW,GAAG,CACzB,YAAe,KAWb;AACF,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,GAC/DA,aAAe,CAAC,YAAY,CAAC;IAE/B,MAAM,eAAe,GAAG,MAAS,kBAAkB,CAAC,KAAK,CAAC;IAE1D,OAAO;QACL,eAAe;QACf,QAAQ;AACR,QAAA;YACE,KAAK;YACL,WAAW;YACX,UAAU;YACV,WAAW;YACX,YAAY;AACb,SAAA;KACO;AACZ;;;;"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { createBooleanState } from './create-boolean-state.mjs';
|
|
2
2
|
export { createReducer } from './create-reducer.mjs';
|
|
3
3
|
export { createState } from './create-state.mjs';
|
|
4
|
-
export { AsyncChildObservableClass, InitializedSyncChildObservableClass, ObservableBaseClass, RootObservableClass, SyncChildObservableClass, attachIndex,
|
|
4
|
+
export { AsyncChildObservableClass, InitializedSyncChildObservableClass, ObservableBaseClass, RootObservableClass, SyncChildObservableClass, attachIndex, audit, collectToArray, combine, combineLatest, counter, createEventEmitter, createValueEmitter, debounce, distinctUntilChanged, filter, flatMap, fromAbortablePromise, fromPromise, fromSubscribable, getKey, isChildObservable, isManagerObservable, isRootObservable, just, map, mapOptional, mapResultErr, mapResultOk, mapTo, merge, mergeMap, pairwise, pluck, scan, skip, skipIfNoChange, skipUntil, skipWhile, source, switchMap, take, takeUntil, takeWhile, throttle, timer, unwrapOptional, unwrapResultErr, unwrapResultOk, withBuffered, withBufferedFrom, withCurrentValueFrom, withIndex, withInitialValue, withLatestFrom, zip } from 'synstate';
|
|
5
5
|
export { useObservableEffect } from './use-observable-effect.mjs';
|
|
6
6
|
export { useObservableValue } from './use-observable-value.mjs';
|
|
7
7
|
export { useValueAsObservable } from './use-value-as-observable.mjs';
|
package/dist/synstate.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { AsyncChildObservableClass, InitializedSyncChildObservableClass, ObservableBaseClass, RootObservableClass, SyncChildObservableClass, attachIndex,
|
|
1
|
+
export { AsyncChildObservableClass, InitializedSyncChildObservableClass, ObservableBaseClass, RootObservableClass, SyncChildObservableClass, attachIndex, audit, collectToArray, combine, combineLatest, counter, createEventEmitter, createValueEmitter, debounce, distinctUntilChanged, filter, flatMap, fromAbortablePromise, fromPromise, fromSubscribable, getKey, isChildObservable, isManagerObservable, isRootObservable, just, map, mapOptional, mapResultErr, mapResultOk, mapTo, merge, mergeMap, pairwise, pluck, scan, skip, skipIfNoChange, skipUntil, skipWhile, source, switchMap, take, takeUntil, takeWhile, throttle, timer, unwrapOptional, unwrapResultErr, unwrapResultOk, withBuffered, withBufferedFrom, withCurrentValueFrom, withIndex, withInitialValue, withLatestFrom, zip, } from 'synstate';
|
|
2
2
|
//# sourceMappingURL=synstate.d.mts.map
|
package/dist/synstate.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synstate.d.mts","sourceRoot":"","sources":["../src/synstate.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,mCAAmC,EACnC,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"synstate.d.mts","sourceRoot":"","sources":["../src/synstate.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,mCAAmC,EACnC,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,WAAW,EACX,KAAK,EACL,cAAc,EACd,OAAO,EACP,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,QAAQ,EACR,oBAAoB,EACpB,MAAM,EACN,OAAO,EACP,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,MAAM,EACN,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,IAAI,EACJ,GAAG,EACH,WAAW,EACX,YAAY,EACZ,WAAW,EACX,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,SAAS,EACT,SAAS,EACT,MAAM,EACN,SAAS,EACT,IAAI,EACJ,SAAS,EACT,SAAS,EACT,QAAQ,EACR,KAAK,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,GAAG,GACJ,MAAM,UAAU,CAAC"}
|
package/dist/synstate.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { AsyncChildObservableClass, InitializedSyncChildObservableClass, ObservableBaseClass, RootObservableClass, SyncChildObservableClass, attachIndex,
|
|
1
|
+
export { AsyncChildObservableClass, InitializedSyncChildObservableClass, ObservableBaseClass, RootObservableClass, SyncChildObservableClass, attachIndex, audit, collectToArray, combine, combineLatest, counter, createEventEmitter, createValueEmitter, debounce, distinctUntilChanged, filter, flatMap, fromAbortablePromise, fromPromise, fromSubscribable, getKey, isChildObservable, isManagerObservable, isRootObservable, just, map, mapOptional, mapResultErr, mapResultOk, mapTo, merge, mergeMap, pairwise, pluck, scan, skip, skipIfNoChange, skipUntil, skipWhile, source, switchMap, take, takeUntil, takeWhile, throttle, timer, unwrapOptional, unwrapResultErr, unwrapResultOk, withBuffered, withBufferedFrom, withCurrentValueFrom, withIndex, withInitialValue, withLatestFrom, zip } from 'synstate';
|
|
2
2
|
//# sourceMappingURL=synstate.mjs.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "synstate-preact-hooks",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Type-safe State Management Library for TypeScript/JavaScript",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
"LICENSE"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"ts-data-forge": "^6.
|
|
31
|
-
"synstate": "0.
|
|
30
|
+
"ts-data-forge": "^6.8.0",
|
|
31
|
+
"synstate": "1.0.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/argparse": "^2.0.17",
|
|
35
35
|
"argparse": "^2.0.1",
|
|
36
|
-
"preact": "^10.
|
|
36
|
+
"preact": "^10.29.0"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"preact": ">=10.0.0"
|
|
@@ -44,12 +44,11 @@
|
|
|
44
44
|
"check:ext": "tsx ./scripts/cmd/check-ext.mts",
|
|
45
45
|
"check-all": "tsx ./scripts/cmd/check-all.mts",
|
|
46
46
|
"codemod": "convert-to-readonly '{src,samples,test}/**/*.{mts,tsx}'",
|
|
47
|
-
"doc": "
|
|
47
|
+
"doc": "run-s doc:embed doc:embed:jsdoc",
|
|
48
48
|
"doc:embed": "tsx ./scripts/cmd/embed-examples.mts",
|
|
49
49
|
"doc:embed:jsdoc": "tsx ./scripts/cmd/embed-examples-in-jsdoc.mts",
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"fmt": "pnpm run z:prettier .",
|
|
50
|
+
"fmt": "format-uncommitted",
|
|
51
|
+
"fmt:full": "pnpm run z:prettier .",
|
|
53
52
|
"gen:re-export": "run-s gen:re-export:script fmt",
|
|
54
53
|
"gen:re-export:script": "tsx ./scripts/cmd/generate-re-export-script.mts",
|
|
55
54
|
"gi": "run-s gi:src fmt",
|
|
@@ -57,7 +56,6 @@
|
|
|
57
56
|
"lint": "eslint .",
|
|
58
57
|
"lint:fix": "eslint . --fix",
|
|
59
58
|
"test": "pnpm run z:vitest:node run",
|
|
60
|
-
"test:all": "run-p test",
|
|
61
59
|
"test:browser": "pnpm run z:vitest --project='Browser' run",
|
|
62
60
|
"test:cov": "pnpm run z:vitest:node run --coverage",
|
|
63
61
|
"test:cov:ui": "vite preview --outDir ./coverage",
|
|
@@ -17,6 +17,7 @@ export const createBooleanState = (
|
|
|
17
17
|
updateState: (updateFn: (prev: boolean) => boolean) => boolean;
|
|
18
18
|
resetState: () => boolean;
|
|
19
19
|
getSnapshot: () => boolean;
|
|
20
|
+
initialState: boolean;
|
|
20
21
|
}>,
|
|
21
22
|
] => {
|
|
22
23
|
const [
|
|
@@ -45,6 +46,7 @@ export const createBooleanState = (
|
|
|
45
46
|
updateState,
|
|
46
47
|
resetState,
|
|
47
48
|
getSnapshot,
|
|
49
|
+
initialState,
|
|
48
50
|
},
|
|
49
51
|
] as const;
|
|
50
52
|
};
|
package/src/create-reducer.mts
CHANGED
|
@@ -13,14 +13,15 @@ export const createReducer = <S, A>(
|
|
|
13
13
|
Readonly<{
|
|
14
14
|
state: InitializedObservable<S>;
|
|
15
15
|
getSnapshot: () => S;
|
|
16
|
+
initialState: S;
|
|
16
17
|
}>,
|
|
17
18
|
] => {
|
|
18
|
-
const [state, dispatch, getSnapshot] = createReducerBase(
|
|
19
|
+
const [state, dispatch, { getSnapshot }] = createReducerBase(
|
|
19
20
|
reducer,
|
|
20
21
|
initialState,
|
|
21
22
|
);
|
|
22
23
|
|
|
23
24
|
const useCurrentValue = (): S => useObservableValue(state);
|
|
24
25
|
|
|
25
|
-
return [useCurrentValue, dispatch, { state, getSnapshot }];
|
|
26
|
+
return [useCurrentValue, dispatch, { state, getSnapshot, initialState }];
|
|
26
27
|
};
|
package/src/create-state.mts
CHANGED
|
@@ -14,6 +14,7 @@ export const createState = <S,>(
|
|
|
14
14
|
updateState: (updateFn: (prev: S) => S) => S;
|
|
15
15
|
resetState: () => S;
|
|
16
16
|
getSnapshot: () => S;
|
|
17
|
+
initialState: S;
|
|
17
18
|
}>,
|
|
18
19
|
] => {
|
|
19
20
|
const [state, setState, { updateState, resetState, getSnapshot }] =
|
|
@@ -29,6 +30,7 @@ export const createState = <S,>(
|
|
|
29
30
|
updateState,
|
|
30
31
|
resetState,
|
|
31
32
|
getSnapshot,
|
|
33
|
+
initialState,
|
|
32
34
|
},
|
|
33
35
|
] as const;
|
|
34
36
|
};
|
package/src/synstate.mts
CHANGED
|
@@ -5,38 +5,32 @@ export {
|
|
|
5
5
|
RootObservableClass,
|
|
6
6
|
SyncChildObservableClass,
|
|
7
7
|
attachIndex,
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
audit,
|
|
9
|
+
collectToArray,
|
|
10
10
|
combine,
|
|
11
11
|
combineLatest,
|
|
12
|
+
counter,
|
|
12
13
|
createEventEmitter,
|
|
13
14
|
createValueEmitter,
|
|
14
|
-
|
|
15
|
+
debounce,
|
|
15
16
|
distinctUntilChanged,
|
|
16
17
|
filter,
|
|
17
18
|
flatMap,
|
|
18
|
-
|
|
19
|
+
fromAbortablePromise,
|
|
19
20
|
fromPromise,
|
|
20
21
|
fromSubscribable,
|
|
21
22
|
getKey,
|
|
22
|
-
halfInt,
|
|
23
|
-
interval,
|
|
24
23
|
isChildObservable,
|
|
25
24
|
isManagerObservable,
|
|
26
25
|
isRootObservable,
|
|
27
|
-
|
|
28
|
-
issueSubscriberId,
|
|
29
|
-
issueUpdaterSymbol,
|
|
26
|
+
just,
|
|
30
27
|
map,
|
|
31
28
|
mapOptional,
|
|
32
29
|
mapResultErr,
|
|
33
30
|
mapResultOk,
|
|
34
31
|
mapTo,
|
|
35
|
-
mapWithIndex,
|
|
36
|
-
maxDepth,
|
|
37
32
|
merge,
|
|
38
33
|
mergeMap,
|
|
39
|
-
of,
|
|
40
34
|
pairwise,
|
|
41
35
|
pluck,
|
|
42
36
|
scan,
|
|
@@ -45,14 +39,12 @@ export {
|
|
|
45
39
|
skipUntil,
|
|
46
40
|
skipWhile,
|
|
47
41
|
source,
|
|
48
|
-
subject,
|
|
49
42
|
switchMap,
|
|
50
43
|
take,
|
|
51
44
|
takeUntil,
|
|
52
45
|
takeWhile,
|
|
53
|
-
|
|
46
|
+
throttle,
|
|
54
47
|
timer,
|
|
55
|
-
toSubscriber,
|
|
56
48
|
unwrapOptional,
|
|
57
49
|
unwrapResultErr,
|
|
58
50
|
unwrapResultOk,
|