synstate-react-hooks 3.0.6 → 3.1.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.
@@ -1,5 +1,5 @@
1
- import { type InitializedObservable } from 'synstate';
2
- export declare const createBooleanState: (initialState: boolean) => readonly [useCurrentValue: () => boolean, utils: Readonly<{
1
+ import { type InitializedObservable, type StateOptions } from 'synstate';
2
+ export declare const createBooleanState: (initialState: boolean, options?: StateOptions<boolean>) => readonly [useCurrentValue: () => boolean, utils: Readonly<{
3
3
  state: InitializedObservable<boolean>;
4
4
  setTrue: () => void;
5
5
  setFalse: () => void;
@@ -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,iBACf,OAAO,KACpB,SAAS,CACV,eAAe,EAAE,MAAM,OAAO,EAC9B,KAAK,EAAE,QAAQ,CAAC;IACd,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
+ {"version":3,"file":"create-boolean-state.d.mts","sourceRoot":"","sources":["../src/create-boolean-state.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,kBAAkB,iBACf,OAAO,YACX,YAAY,CAAC,OAAO,CAAC,KAC9B,SAAS,CACV,eAAe,EAAE,MAAM,OAAO,EAC9B,KAAK,EAAE,QAAQ,CAAC;IACd,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,7 +1,7 @@
1
1
  import { createBooleanState as createBooleanStateBase, } from 'synstate';
2
2
  import { useObservableValue } from './use-observable-value.mjs';
3
- export const createBooleanState = (initialState) => {
4
- const [state, { setTrue, setFalse, setState, toggle, updateState, resetState, getSnapshot, },] = createBooleanStateBase(initialState);
3
+ export const createBooleanState = (initialState, options) => {
4
+ const [state, { setTrue, setFalse, setState, toggle, updateState, resetState, getSnapshot, },] = createBooleanStateBase(initialState, options);
5
5
  const useCurrentValue = () => useObservableValue(state);
6
6
  return [
7
7
  useCurrentValue,
@@ -1 +1 @@
1
- {"version":3,"file":"create-boolean-state.mjs","sourceRoot":"","sources":["../src/create-boolean-state.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,IAAI,sBAAsB,GAC7C,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,YAAqB,EAcrB,EAAE;IACF,MAAM,CACJ,KAAK,EACL,EACE,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,WAAW,EACX,UAAU,EACV,WAAW,GACZ,EACF,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAEzC,MAAM,eAAe,GAAG,GAAY,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEjE,OAAO;QACL,eAAe;QACf;YACE,KAAK;YACL,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,MAAM;YACN,WAAW;YACX,UAAU;YACV,WAAW;YACX,YAAY;SACb;KACO,CAAC;AACb,CAAC,CAAC"}
1
+ {"version":3,"file":"create-boolean-state.mjs","sourceRoot":"","sources":["../src/create-boolean-state.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,IAAI,sBAAsB,GAG7C,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,YAAqB,EACrB,OAA+B,EAc/B,EAAE;IACF,MAAM,CACJ,KAAK,EACL,EACE,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,WAAW,EACX,UAAU,EACV,WAAW,GACZ,EACF,GAAG,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAElD,MAAM,eAAe,GAAG,GAAY,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEjE,OAAO;QACL,eAAe;QACf;YACE,KAAK;YACL,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,MAAM;YACN,WAAW;YACX,UAAU;YACV,WAAW;YACX,YAAY;SACb;KACO,CAAC;AACb,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
- import { type InitializedObservable } from 'synstate';
2
- import { type Reducer } from 'ts-type-forge';
3
- export declare const createReducer: <S, A>(reducer: Reducer<S, A>, initialState: S) => readonly [useCurrentValue: () => S, dispatch: (action: A) => S, utils: Readonly<{
1
+ import { type InitializedObservable, type StateOptions } from 'synstate';
2
+ import type { Reducer } from 'ts-type-forge';
3
+ export declare const createReducer: <S, A>(reducer: Reducer<S, A>, initialState: S, options?: StateOptions<NoInfer<S>>) => readonly [useCurrentValue: () => S, dispatch: (action: A) => S, utils: Readonly<{
4
4
  state: InitializedObservable<S>;
5
5
  getSnapshot: () => S;
6
6
  initialState: S;
@@ -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;AAClB,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,WACvB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,gBACR,CAAC,KACd,SAAS,CACV,eAAe,EAAE,MAAM,CAAC,EACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC,CAAC;IACrB,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC,CAUH,CAAC"}
1
+ {"version":3,"file":"create-reducer.d.mts","sourceRoot":"","sources":["../src/create-reducer.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,WACvB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,gBACR,CAAC,YACL,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KACjC,SAAS,CACV,eAAe,EAAE,MAAM,CAAC,EACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC,CAAC;IACrB,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC,CAWH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { createReducer as createReducerBase, } from 'synstate';
2
2
  import { useObservableValue } from './use-observable-value.mjs';
3
- export const createReducer = (reducer, initialState) => {
4
- const [state, dispatch, { getSnapshot }] = createReducerBase(reducer, initialState);
3
+ export const createReducer = (reducer, initialState, options) => {
4
+ const [state, dispatch, { getSnapshot }] = createReducerBase(reducer, initialState, options);
5
5
  const useCurrentValue = () => useObservableValue(state);
6
6
  return [useCurrentValue, dispatch, { state, getSnapshot, initialState }];
7
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"create-reducer.mjs","sourceRoot":"","sources":["../src/create-reducer.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,IAAI,iBAAiB,GAEnC,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAsB,EACtB,YAAe,EASf,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG,iBAAiB,CAC1D,OAAO,EACP,YAAY,CACb,CAAC;IAEF,MAAM,eAAe,GAAG,GAAM,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE3D,OAAO,CAAC,eAAe,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC"}
1
+ {"version":3,"file":"create-reducer.mjs","sourceRoot":"","sources":["../src/create-reducer.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,IAAI,iBAAiB,GAGnC,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAsB,EACtB,YAAe,EACf,OAAkC,EASlC,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG,iBAAiB,CAC1D,OAAO,EACP,YAAY,EACZ,OAAO,CACR,CAAC;IAEF,MAAM,eAAe,GAAG,GAAM,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE3D,OAAO,CAAC,eAAe,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- import { type InitializedObservable } from 'synstate';
2
- export declare const createState: <S>(initialState: S) => readonly [useCurrentValue: () => S, setState: (v: S) => S, utils: Readonly<{
1
+ import { type InitializedObservable, type StateOptions } from 'synstate';
2
+ export declare const createState: <S>(initialState: S, options?: StateOptions<NoInfer<S>>) => readonly [useCurrentValue: () => S, setState: (v: S) => S, utils: Readonly<{
3
3
  state: InitializedObservable<S>;
4
4
  updateState: (updateFn: (prev: S) => S) => S;
5
5
  resetState: () => S;
@@ -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,gBACb,CAAC,KACd,SAAS,CACV,eAAe,EAAE,MAAM,CAAC,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACrB,KAAK,EAAE,QAAQ,CAAC;IACd,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"}
1
+ {"version":3,"file":"create-state.d.mts","sourceRoot":"","sources":["../src/create-state.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,WAAW,GAAI,CAAC,gBACb,CAAC,YACL,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KACjC,SAAS,CACV,eAAe,EAAE,MAAM,CAAC,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACrB,KAAK,EAAE,QAAQ,CAAC;IACd,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"}
@@ -1,7 +1,7 @@
1
1
  import { createState as createStateBase, } from 'synstate';
2
2
  import { useObservableValue } from './use-observable-value.mjs';
3
- export const createState = (initialState) => {
4
- const [state, setState, { updateState, resetState, getSnapshot }] = createStateBase(initialState);
3
+ export const createState = (initialState, options) => {
4
+ const [state, setState, { updateState, resetState, getSnapshot }] = createStateBase(initialState, options);
5
5
  const useCurrentValue = () => useObservableValue(state);
6
6
  return [
7
7
  useCurrentValue,
@@ -1 +1 @@
1
- {"version":3,"file":"create-state.mjs","sourceRoot":"","sources":["../src/create-state.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,eAAe,GAE/B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,YAAe,EAWf,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,GAC/D,eAAe,CAAC,YAAY,CAAC,CAAC;IAEhC,MAAM,eAAe,GAAG,GAAM,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE3D,OAAO;QACL,eAAe;QACf,QAAQ;QACR;YACE,KAAK;YACL,WAAW;YACX,UAAU;YACV,WAAW;YACX,YAAY;SACb;KACO,CAAC;AACb,CAAC,CAAC"}
1
+ {"version":3,"file":"create-state.mjs","sourceRoot":"","sources":["../src/create-state.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,eAAe,GAG/B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,YAAe,EACf,OAAkC,EAWlC,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,GAC/D,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEzC,MAAM,eAAe,GAAG,GAAM,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE3D,OAAO;QACL,eAAe;QACf,QAAQ;QACR;YACE,KAAK;YACL,WAAW;YACX,UAAU;YACV,WAAW;YACX,YAAY;SACb;KACO,CAAC;AACb,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
- import { type Observable } from 'synstate';
1
+ import type { Observable } from 'synstate';
2
2
  export declare const useObservableEffect: <A>(observable$: Observable<A>, subscriptionFn: (v: A) => void) => void;
3
3
  //# sourceMappingURL=use-observable-effect.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-observable-effect.d.mts","sourceRoot":"","sources":["../src/use-observable-effect.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,eAAO,MAAM,mBAAmB,GAAI,CAAC,eACtB,UAAU,CAAC,CAAC,CAAC,kBACV,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,KAC7B,IAQF,CAAC"}
1
+ {"version":3,"file":"use-observable-effect.d.mts","sourceRoot":"","sources":["../src/use-observable-effect.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,eAAO,MAAM,mBAAmB,GAAI,CAAC,eACtB,UAAU,CAAC,CAAC,CAAC,kBACV,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,KAC7B,IAQF,CAAC"}
@@ -1,5 +1,4 @@
1
- import { type InitializedObservable, type Observable } from 'synstate';
1
+ import type { InitializedObservable, Observable, ObservableValue } from 'synstate';
2
2
  export declare function useObservableValue<A, B = A>(observable$: Observable<A>, initialValue: B): A | B;
3
- export declare function useObservableValue<A>(observable$: InitializedObservable<A>): A;
4
- export declare function useObservableValue<A>(observable$: Observable<A>): A | undefined;
3
+ export declare function useObservableValue<O extends Observable<unknown>>(observable$: O): O extends InitializedObservable<infer A> ? A : ObservableValue<O> | undefined;
5
4
  //# sourceMappingURL=use-observable-value.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-observable-value.d.mts","sourceRoot":"","sources":["../src/use-observable-value.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAGvE,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EACzC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAC1B,YAAY,EAAE,CAAC,GACd,CAAC,GAAG,CAAC,CAAC;AAET,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEhF,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,GACzB,CAAC,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"use-observable-value.d.mts","sourceRoot":"","sources":["../src/use-observable-value.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,UAAU,EACV,eAAe,EAChB,MAAM,UAAU,CAAC;AAGlB,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EACzC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAC1B,YAAY,EAAE,CAAC,GACd,CAAC,GAAG,CAAC,CAAC;AAET,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,CAAC,EAC9D,WAAW,EAAE,CAAC,GACb,CAAC,SAAS,qBAAqB,CAAC,MAAM,CAAC,CAAC,GACvC,CAAC,GACD,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-observable-value.mjs","sourceRoot":"","sources":["../src/use-observable-value.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAazC,MAAM,UAAU,kBAAkB,CAChC,WAA0B,EAC1B,YAAgB;IAEhB,MAAM,KAAK,GAAG,KAAK,CAAC,oBAAoB,CACtC,CAAC,aAAyB,EAAE,EAAE;QAC5B,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAE7D,OAAO,WAAW,CAAC;IACrB,CAAC,EACD,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,CAChC,CAAC;IAEF,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"use-observable-value.mjs","sourceRoot":"","sources":["../src/use-observable-value.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAazC,MAAM,UAAU,kBAAkB,CAChC,WAA0B,EAC1B,YAAgB;IAEhB,MAAM,KAAK,GAAG,KAAK,CAAC,oBAAoB,CACtC,CAAC,aAAyB,EAAE,EAAE;QAC5B,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAE7D,OAAO,WAAW,CAAC;IACrB,CAAC,EACD,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,CAChC,CAAC;IAEF,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAChD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synstate-react-hooks",
3
- "version": "3.0.6",
3
+ "version": "3.1.1",
4
4
  "description": "Type-safe State Management Library for TypeScript/JavaScript",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,23 +28,23 @@
28
28
  "LICENSE"
29
29
  ],
30
30
  "dependencies": {
31
- "synstate": "3.0.6",
31
+ "synstate": "3.1.0",
32
32
  "ts-data-forge": "^14.7.1",
33
33
  "ts-type-forge": "^9.2.2"
34
34
  },
35
35
  "devDependencies": {
36
- "@sumi-lang/cli": "0.0.4",
36
+ "@sumi-lang/cli": "0.0.5",
37
37
  "@testing-library/dom": "10.4.2",
38
38
  "@testing-library/react": "16.3.3",
39
39
  "@types/react": "19.3.0",
40
40
  "@types/react-dom": "19.3.0",
41
- "@vitest/browser-playwright": "5.0.1",
42
- "eslint-config-typed": "5.15.1",
43
- "eslint-plugin-ts-data-forge": "0.8.1",
44
- "eslint-plugin-ts-fortress": "1.2.3",
45
- "eslint-plugin-ts-type-forge": "0.8.4",
41
+ "@vitest/browser-playwright": "5.0.2",
42
+ "eslint-config-typed": "5.17.0",
43
+ "eslint-plugin-ts-data-forge": "0.8.3",
44
+ "eslint-plugin-ts-fortress": "1.3.0",
45
+ "eslint-plugin-ts-type-forge": "0.8.5",
46
46
  "playwright": "1.63.0",
47
- "prettier": "3.9.8",
47
+ "prettier": "3.9.9",
48
48
  "prettier-plugin-organize-imports": "4.3.0",
49
49
  "prettier-plugin-packagejson": "3.0.2",
50
50
  "react": "19.3.0",
@@ -1,11 +1,13 @@
1
1
  import {
2
- type InitializedObservable,
3
2
  createBooleanState as createBooleanStateBase,
3
+ type InitializedObservable,
4
+ type StateOptions,
4
5
  } from 'synstate';
5
6
  import { useObservableValue } from './use-observable-value.mjs';
6
7
 
7
8
  export const createBooleanState = (
8
9
  initialState: boolean,
10
+ options?: StateOptions<boolean>,
9
11
  ): readonly [
10
12
  useCurrentValue: () => boolean,
11
13
  utils: Readonly<{
@@ -31,7 +33,7 @@ export const createBooleanState = (
31
33
  resetState,
32
34
  getSnapshot,
33
35
  },
34
- ] = createBooleanStateBase(initialState);
36
+ ] = createBooleanStateBase(initialState, options);
35
37
 
36
38
  const useCurrentValue = (): boolean => useObservableValue(state);
37
39
 
@@ -1,13 +1,15 @@
1
1
  import {
2
2
  createReducer as createReducerBase,
3
3
  type InitializedObservable,
4
+ type StateOptions,
4
5
  } from 'synstate';
5
- import { type Reducer } from 'ts-type-forge';
6
+ import type { Reducer } from 'ts-type-forge';
6
7
  import { useObservableValue } from './use-observable-value.mjs';
7
8
 
8
9
  export const createReducer = <S, A>(
9
10
  reducer: Reducer<S, A>,
10
11
  initialState: S,
12
+ options?: StateOptions<NoInfer<S>>,
11
13
  ): readonly [
12
14
  useCurrentValue: () => S,
13
15
  dispatch: (action: A) => S,
@@ -20,6 +22,7 @@ export const createReducer = <S, A>(
20
22
  const [state, dispatch, { getSnapshot }] = createReducerBase(
21
23
  reducer,
22
24
  initialState,
25
+ options,
23
26
  );
24
27
 
25
28
  const useCurrentValue = (): S => useObservableValue(state);
@@ -1,11 +1,13 @@
1
1
  import {
2
2
  createState as createStateBase,
3
3
  type InitializedObservable,
4
+ type StateOptions,
4
5
  } from 'synstate';
5
6
  import { useObservableValue } from './use-observable-value.mjs';
6
7
 
7
8
  export const createState = <S,>(
8
9
  initialState: S,
10
+ options?: StateOptions<NoInfer<S>>,
9
11
  ): readonly [
10
12
  useCurrentValue: () => S,
11
13
  setState: (v: S) => S,
@@ -18,7 +20,7 @@ export const createState = <S,>(
18
20
  }>,
19
21
  ] => {
20
22
  const [state, setState, { updateState, resetState, getSnapshot }] =
21
- createStateBase(initialState);
23
+ createStateBase(initialState, options);
22
24
 
23
25
  const useCurrentValue = (): S => useObservableValue(state);
24
26
 
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { type Observable } from 'synstate';
2
+ import type { Observable } from 'synstate';
3
3
 
4
4
  export const useObservableEffect = <A,>(
5
5
  observable$: Observable<A>,
@@ -1,5 +1,9 @@
1
1
  import * as React from 'react';
2
- import { type InitializedObservable, type Observable } from 'synstate';
2
+ import type {
3
+ InitializedObservable,
4
+ Observable,
5
+ ObservableValue,
6
+ } from 'synstate';
3
7
  import { Optional } from 'ts-data-forge';
4
8
 
5
9
  export function useObservableValue<A, B = A>(
@@ -7,11 +11,11 @@ export function useObservableValue<A, B = A>(
7
11
  initialValue: B,
8
12
  ): A | B;
9
13
 
10
- export function useObservableValue<A>(observable$: InitializedObservable<A>): A;
11
-
12
- export function useObservableValue<A>(
13
- observable$: Observable<A>,
14
- ): A | undefined;
14
+ export function useObservableValue<O extends Observable<unknown>>(
15
+ observable$: O,
16
+ ): O extends InitializedObservable<infer A>
17
+ ? A
18
+ : ObservableValue<O> | undefined;
15
19
 
16
20
  export function useObservableValue<A, B = A>(
17
21
  observable$: Observable<A>,