synstate-react-hooks 0.1.2 → 1.0.1
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 +6 -8
- 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 +2 -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/dist/types.d.mts +1 -2
- package/package.json +11 -12
- package/src/create-boolean-state.mts +2 -0
- package/src/create-reducer.mts +4 -2
- package/src/create-state.mts +2 -0
- package/src/synstate.mts +7 -15
- package/dist/globals.d.mts +0 -1
- package/src/globals.d.mts +0 -1
package/README.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# SynState React hooks
|
|
2
2
|
|
|
3
|
+
synstate-react-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
|
+
|
|
3
7
|
## Installation
|
|
4
8
|
|
|
5
9
|
```bash
|
|
@@ -35,10 +39,7 @@ const UserProfile = (): React.JSX.Element => {
|
|
|
35
39
|
|
|
36
40
|
return (
|
|
37
41
|
<div>
|
|
38
|
-
<p>
|
|
39
|
-
{'Name: '}
|
|
40
|
-
{user.name}
|
|
41
|
-
</p>
|
|
42
|
+
<p>{`Name: ${user.name}`}</p>
|
|
42
43
|
<button
|
|
43
44
|
onClick={() => {
|
|
44
45
|
setUserState({
|
|
@@ -83,10 +84,7 @@ const UserProfile = (): React.JSX.Element => {
|
|
|
83
84
|
|
|
84
85
|
return (
|
|
85
86
|
<div>
|
|
86
|
-
<p>
|
|
87
|
-
{'Name: '}
|
|
88
|
-
{user.name}
|
|
89
|
-
</p>
|
|
87
|
+
<p>{`Name: ${user.name}`}</p>
|
|
90
88
|
<button
|
|
91
89
|
onClick={() => {
|
|
92
90
|
setUserState({
|
|
@@ -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;;;;"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type InitializedObservable } from 'synstate';
|
|
2
|
+
import { type Reducer } from 'ts-type-forge';
|
|
2
3
|
export declare const createReducer: <S, A>(reducer: Reducer<S, A>, initialState: S) => readonly [useCurrentValue: () => S, dispatch: (action: A) => S, Readonly<{
|
|
3
4
|
state: InitializedObservable<S>;
|
|
4
5
|
getSnapshot: () => S;
|
|
6
|
+
initialState: S;
|
|
5
7
|
}>];
|
|
6
8
|
//# 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;
|
|
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;AAClB,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,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":";;;
|
|
1
|
+
{"version":3,"file":"create-reducer.mjs","sources":["../src/create-reducer.mts"],"sourcesContent":[null],"names":["createReducerBase"],"mappings":";;;MAOa,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/dist/types.d.mts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export * from './entry-point.mjs';
|
|
1
|
+
export * from './entry-point.mjs';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "synstate-react-hooks",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Type-safe State Management Library for TypeScript/JavaScript",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,14 +27,15 @@
|
|
|
27
27
|
"LICENSE"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"ts-data-forge": "
|
|
31
|
-
"
|
|
30
|
+
"ts-data-forge": "6.9.4",
|
|
31
|
+
"ts-type-forge": "3.0.0",
|
|
32
|
+
"synstate": "1.0.1"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
34
|
-
"@types/argparse": "
|
|
35
|
-
"@types/react": "
|
|
36
|
-
"argparse": "
|
|
37
|
-
"react": "
|
|
35
|
+
"@types/argparse": "2.0.17",
|
|
36
|
+
"@types/react": "19.2.14",
|
|
37
|
+
"argparse": "2.0.1",
|
|
38
|
+
"react": "19.2.5"
|
|
38
39
|
},
|
|
39
40
|
"peerDependencies": {
|
|
40
41
|
"react": ">=18.0.0"
|
|
@@ -45,12 +46,11 @@
|
|
|
45
46
|
"check:ext": "tsx ./scripts/cmd/check-ext.mts",
|
|
46
47
|
"check-all": "tsx ./scripts/cmd/check-all.mts",
|
|
47
48
|
"codemod": "convert-to-readonly '{src,samples,test}/**/*.{mts,tsx}'",
|
|
48
|
-
"doc": "
|
|
49
|
+
"doc": "run-s doc:embed doc:embed:jsdoc fmt",
|
|
49
50
|
"doc:embed": "tsx ./scripts/cmd/embed-examples.mts",
|
|
50
51
|
"doc:embed:jsdoc": "tsx ./scripts/cmd/embed-examples-in-jsdoc.mts",
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"fmt": "pnpm run z:prettier .",
|
|
52
|
+
"fmt": "format-uncommitted",
|
|
53
|
+
"fmt:full": "pnpm run z:prettier .",
|
|
54
54
|
"gen:re-export": "run-s gen:re-export:script fmt",
|
|
55
55
|
"gen:re-export:script": "tsx ./scripts/cmd/generate-re-export-script.mts",
|
|
56
56
|
"gi": "run-s gi:src fmt",
|
|
@@ -58,7 +58,6 @@
|
|
|
58
58
|
"lint": "eslint .",
|
|
59
59
|
"lint:fix": "eslint . --fix",
|
|
60
60
|
"test": "pnpm run z:vitest:node run",
|
|
61
|
-
"test:all": "run-p test",
|
|
62
61
|
"test:browser": "pnpm run z:vitest --project='Browser' run",
|
|
63
62
|
"test:cov": "pnpm run z:vitest:node run --coverage",
|
|
64
63
|
"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
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
createReducer as createReducerBase,
|
|
3
3
|
type InitializedObservable,
|
|
4
4
|
} from 'synstate';
|
|
5
|
+
import { type Reducer } from 'ts-type-forge';
|
|
5
6
|
import { useObservableValue } from './use-observable-value.mjs';
|
|
6
7
|
|
|
7
8
|
export const createReducer = <S, A>(
|
|
@@ -13,14 +14,15 @@ export const createReducer = <S, A>(
|
|
|
13
14
|
Readonly<{
|
|
14
15
|
state: InitializedObservable<S>;
|
|
15
16
|
getSnapshot: () => S;
|
|
17
|
+
initialState: S;
|
|
16
18
|
}>,
|
|
17
19
|
] => {
|
|
18
|
-
const [state, dispatch, getSnapshot] = createReducerBase(
|
|
20
|
+
const [state, dispatch, { getSnapshot }] = createReducerBase(
|
|
19
21
|
reducer,
|
|
20
22
|
initialState,
|
|
21
23
|
);
|
|
22
24
|
|
|
23
25
|
const useCurrentValue = (): S => useObservableValue(state);
|
|
24
26
|
|
|
25
|
-
return [useCurrentValue, dispatch, { state, getSnapshot }];
|
|
27
|
+
return [useCurrentValue, dispatch, { state, getSnapshot, initialState }];
|
|
26
28
|
};
|
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,
|
package/dist/globals.d.mts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/// <reference types="ts-type-forge" />
|
package/src/globals.d.mts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/// <reference types="ts-type-forge" />
|