synstate-preact-hooks 3.0.0 → 3.0.2

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,35 +1,21 @@
1
- import { createBooleanState as createBooleanState$1 } from 'synstate';
1
+ import { createBooleanState as createBooleanStateBase, } from 'synstate';
2
2
  import { useObservableValue } from './use-observable-value.mjs';
3
-
4
- const createBooleanState = (initialState) => {
5
- const [
6
- state,
7
- {
8
- setTrue,
9
- setFalse,
10
- setState,
11
- toggle,
12
- updateState,
13
- resetState,
14
- getSnapshot
15
- }
16
- ] = createBooleanState$1(initialState);
17
- const useCurrentValue = () => useObservableValue(state);
18
- return [
19
- useCurrentValue,
20
- {
21
- state,
22
- setTrue,
23
- setFalse,
24
- setState,
25
- toggle,
26
- updateState,
27
- resetState,
28
- getSnapshot,
29
- initialState
30
- }
31
- ];
3
+ export const createBooleanState = (initialState) => {
4
+ const [state, { setTrue, setFalse, setState, toggle, updateState, resetState, getSnapshot, },] = createBooleanStateBase(initialState);
5
+ const useCurrentValue = () => useObservableValue(state);
6
+ return [
7
+ useCurrentValue,
8
+ {
9
+ state,
10
+ setTrue,
11
+ setFalse,
12
+ setState,
13
+ toggle,
14
+ updateState,
15
+ resetState,
16
+ getSnapshot,
17
+ initialState,
18
+ },
19
+ ];
32
20
  };
33
-
34
- export { createBooleanState };
35
- //# sourceMappingURL=create-boolean-state.mjs.map
21
+ //# sourceMappingURL=create-boolean-state.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-boolean-state.mjs","sources":["../src/create-boolean-state.mts"],"sourcesContent":["import {\n type InitializedObservable,\n createBooleanState as createBooleanStateBase,\n} from 'synstate';\nimport { useObservableValue } from './use-observable-value.mjs';\n\nexport const createBooleanState = (\n initialState: boolean,\n): readonly [\n useCurrentValue: () => boolean,\n utils: Readonly<{\n state: InitializedObservable<boolean>;\n setTrue: () => void;\n setFalse: () => void;\n setState: (next: boolean) => boolean;\n toggle: () => boolean;\n updateState: (updateFn: (prev: boolean) => boolean) => boolean;\n resetState: () => boolean;\n getSnapshot: () => boolean;\n initialState: boolean;\n }>,\n] => {\n const [\n state,\n {\n setTrue,\n setFalse,\n setState,\n toggle,\n updateState,\n resetState,\n getSnapshot,\n },\n ] = createBooleanStateBase(initialState);\n\n const useCurrentValue = (): boolean => useObservableValue(state);\n\n return [\n useCurrentValue,\n {\n state,\n setTrue,\n setFalse,\n setState,\n toggle,\n updateState,\n resetState,\n getSnapshot,\n initialState,\n },\n ] as const;\n};\n"],"names":["createBooleanStateBase"],"mappings":";;;AAMO,MAAM,kBAAA,GAAqB,CAChC,YAAA,KAcG;AACH,EAAA,MAAM;AAAA,IACJ,KAAA;AAAA,IACA;AAAA,MACE,OAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA;AAAA;AACF,GACF,GAAIA,qBAAuB,YAAY,CAAA;AAEvC,EAAA,MAAM,eAAA,GAAkB,MAAe,kBAAA,CAAmB,KAAK,CAAA;AAE/D,EAAA,OAAO;AAAA,IACL,eAAA;AAAA,IACA;AAAA,MACE,KAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA;AACF,GACF;AACF;;;;"}
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,14 +1,8 @@
1
- import { createReducer as createReducer$1 } from 'synstate';
1
+ import { createReducer as createReducerBase, } from 'synstate';
2
2
  import { useObservableValue } from './use-observable-value.mjs';
3
-
4
- const createReducer = (reducer, initialState) => {
5
- const [state, dispatch, { getSnapshot }] = createReducer$1(
6
- reducer,
7
- initialState
8
- );
9
- const useCurrentValue = () => useObservableValue(state);
10
- return [useCurrentValue, dispatch, { state, getSnapshot, initialState }];
3
+ export const createReducer = (reducer, initialState) => {
4
+ const [state, dispatch, { getSnapshot }] = createReducerBase(reducer, initialState);
5
+ const useCurrentValue = () => useObservableValue(state);
6
+ return [useCurrentValue, dispatch, { state, getSnapshot, initialState }];
11
7
  };
12
-
13
- export { createReducer };
14
- //# sourceMappingURL=create-reducer.mjs.map
8
+ //# sourceMappingURL=create-reducer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-reducer.mjs","sources":["../src/create-reducer.mts"],"sourcesContent":["import {\n createReducer as createReducerBase,\n type InitializedObservable,\n} from 'synstate';\nimport { type Reducer } from 'ts-type-forge';\nimport { useObservableValue } from './use-observable-value.mjs';\n\nexport const createReducer = <S, A>(\n reducer: Reducer<S, A>,\n initialState: S,\n): readonly [\n useCurrentValue: () => S,\n dispatch: (action: A) => S,\n utils: Readonly<{\n state: InitializedObservable<S>;\n getSnapshot: () => S;\n initialState: S;\n }>,\n] => {\n const [state, dispatch, { getSnapshot }] = createReducerBase(\n reducer,\n initialState,\n );\n\n const useCurrentValue = (): S => useObservableValue(state);\n\n return [useCurrentValue, dispatch, { state, getSnapshot, initialState }];\n};\n"],"names":["createReducerBase"],"mappings":";;;AAOO,MAAM,aAAA,GAAgB,CAC3B,OAAA,EACA,YAAA,KASG;AACH,EAAA,MAAM,CAAC,KAAA,EAAO,QAAA,EAAU,EAAE,WAAA,EAAa,CAAA,GAAIA,eAAA;AAAA,IACzC,OAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,MAAM,eAAA,GAAkB,MAAS,kBAAA,CAAmB,KAAK,CAAA;AAEzD,EAAA,OAAO,CAAC,eAAA,EAAiB,QAAA,EAAU,EAAE,KAAA,EAAO,WAAA,EAAa,cAAc,CAAA;AACzE;;;;"}
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,21 +1,18 @@
1
- import { createState as createState$1 } from 'synstate';
1
+ import { createState as createStateBase, } from 'synstate';
2
2
  import { useObservableValue } from './use-observable-value.mjs';
3
-
4
- const createState = (initialState) => {
5
- const [state, setState, { updateState, resetState, getSnapshot }] = createState$1(initialState);
6
- const useCurrentValue = () => useObservableValue(state);
7
- return [
8
- useCurrentValue,
9
- setState,
10
- {
11
- state,
12
- updateState,
13
- resetState,
14
- getSnapshot,
15
- initialState
16
- }
17
- ];
3
+ export const createState = (initialState) => {
4
+ const [state, setState, { updateState, resetState, getSnapshot }] = createStateBase(initialState);
5
+ const useCurrentValue = () => useObservableValue(state);
6
+ return [
7
+ useCurrentValue,
8
+ setState,
9
+ {
10
+ state,
11
+ updateState,
12
+ resetState,
13
+ getSnapshot,
14
+ initialState,
15
+ },
16
+ ];
18
17
  };
19
-
20
- export { createState };
21
- //# sourceMappingURL=create-state.mjs.map
18
+ //# sourceMappingURL=create-state.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-state.mjs","sources":["../src/create-state.mts"],"sourcesContent":["import {\n createState as createStateBase,\n type InitializedObservable,\n} from 'synstate';\nimport { useObservableValue } from './use-observable-value.mjs';\n\nexport const createState = <S,>(\n initialState: S,\n): readonly [\n useCurrentValue: () => S,\n setState: (v: S) => S,\n utils: Readonly<{\n state: InitializedObservable<S>;\n updateState: (updateFn: (prev: S) => S) => S;\n resetState: () => S;\n getSnapshot: () => S;\n initialState: S;\n }>,\n] => {\n const [state, setState, { updateState, resetState, getSnapshot }] =\n createStateBase(initialState);\n\n const useCurrentValue = (): S => useObservableValue(state);\n\n return [\n useCurrentValue,\n setState,\n {\n state,\n updateState,\n resetState,\n getSnapshot,\n initialState,\n },\n ] as const;\n};\n"],"names":["createStateBase"],"mappings":";;;AAMO,MAAM,WAAA,GAAc,CACzB,YAAA,KAWG;AACH,EAAA,MAAM,CAAC,KAAA,EAAO,QAAA,EAAU,EAAE,WAAA,EAAa,YAAY,WAAA,EAAa,CAAA,GAC9DA,aAAA,CAAgB,YAAY,CAAA;AAE9B,EAAA,MAAM,eAAA,GAAkB,MAAS,kBAAA,CAAmB,KAAK,CAAA;AAEzD,EAAA,OAAO;AAAA,IACL,eAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,MACE,KAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA;AACF,GACF;AACF;;;;"}
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"}
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
- export { createBooleanState } from './create-boolean-state.mjs';
2
- export { createReducer } from './create-reducer.mjs';
3
- export { createState } from './create-state.mjs';
4
- export { 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
- export { useObservableEffect } from './use-observable-effect.mjs';
6
- export { useObservableValue } from './use-observable-value.mjs';
7
- export { useValueAsObservable } from './use-value-as-observable.mjs';
8
- //# sourceMappingURL=index.mjs.map
1
+ export * from './create-boolean-state.mjs';
2
+ export * from './create-reducer.mjs';
3
+ export * from './create-state.mjs';
4
+ export * from './synstate.mjs';
5
+ export * from './use-observable-effect.mjs';
6
+ export * from './use-observable-value.mjs';
7
+ export * from './use-value-as-observable.mjs';
8
+ //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC"}
package/dist/synstate.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export { 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
- //# sourceMappingURL=synstate.mjs.map
1
+ export { 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
+ //# sourceMappingURL=synstate.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"synstate.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"synstate.mjs","sourceRoot":"","sources":["../src/synstate.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,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"}
@@ -1,13 +1,10 @@
1
1
  import * as Preact from 'preact/hooks';
2
-
3
- const useObservableEffect = (observable$, subscriptionFn) => {
4
- Preact.useEffect(() => {
5
- const s = observable$.subscribe(subscriptionFn);
6
- return () => {
7
- s.unsubscribe();
8
- };
9
- }, []);
2
+ export const useObservableEffect = (observable$, subscriptionFn) => {
3
+ Preact.useEffect(() => {
4
+ const s = observable$.subscribe(subscriptionFn);
5
+ return () => {
6
+ s.unsubscribe();
7
+ };
8
+ }, []);
10
9
  };
11
-
12
- export { useObservableEffect };
13
- //# sourceMappingURL=use-observable-effect.mjs.map
10
+ //# sourceMappingURL=use-observable-effect.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-observable-effect.mjs","sources":["../src/use-observable-effect.mts"],"sourcesContent":["import * as Preact from 'preact/hooks';\nimport { type Observable } from 'synstate';\n\nexport const useObservableEffect = <A,>(\n observable$: Observable<A>,\n subscriptionFn: (v: A) => void,\n): void => {\n Preact.useEffect(() => {\n const s = observable$.subscribe(subscriptionFn);\n\n return () => {\n s.unsubscribe();\n };\n }, []);\n};\n"],"names":[],"mappings":";;AAGO,MAAM,mBAAA,GAAsB,CACjC,WAAA,EACA,cAAA,KACS;AACT,EAAA,MAAA,CAAO,UAAU,MAAM;AACrB,IAAA,MAAM,CAAA,GAAI,WAAA,CAAY,SAAA,CAAU,cAAc,CAAA;AAE9C,IAAA,OAAO,MAAM;AACX,MAAA,CAAA,CAAE,WAAA,EAAY;AAAA,IAChB,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AACP;;;;"}
1
+ {"version":3,"file":"use-observable-effect.mjs","sourceRoot":"","sources":["../src/use-observable-effect.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAGvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAA0B,EAC1B,cAA8B,EACxB,EAAE;IACR,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;QACpB,MAAM,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAEhD,OAAO,GAAG,EAAE;YACV,CAAC,CAAC,WAAW,EAAE,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC"}
@@ -2,5 +2,4 @@ import { type InitializedObservable, type Observable } from 'synstate';
2
2
  export declare function useObservableValue<A, B = A>(observable$: Observable<A>, initialValue: B): A | B;
3
3
  export declare function useObservableValue<A>(observable$: InitializedObservable<A>): A;
4
4
  export declare function useObservableValue<A>(observable$: Observable<A>): A | undefined;
5
- export declare function useObservableValue<A, B = A>(observable$: Observable<A>, initialValue: B): A | B;
6
5
  //# 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;AAEjB,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EACzC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAC1B,YAAY,EAAE,CAAC,GACd,CAAC,GAAG,CAAC,CAAC"}
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,16 +1,10 @@
1
1
  import * as PreactCompat from 'preact/compat';
2
2
  import { Optional } from 'ts-data-forge';
3
-
4
- function useObservableValue(observable$, initialValue) {
5
- const value = PreactCompat.useSyncExternalStore(
6
- (onStoreChange) => {
7
- const { unsubscribe } = observable$.subscribe(onStoreChange);
8
- return unsubscribe;
9
- },
10
- () => observable$.getSnapshot()
11
- );
12
- return Optional.unwrapOr(value, initialValue);
3
+ export function useObservableValue(observable$, initialValue) {
4
+ const value = PreactCompat.useSyncExternalStore((onStoreChange) => {
5
+ const { unsubscribe } = observable$.subscribe(onStoreChange);
6
+ return unsubscribe;
7
+ }, () => observable$.getSnapshot());
8
+ return Optional.unwrapOr(value, initialValue);
13
9
  }
14
-
15
- export { useObservableValue };
16
- //# sourceMappingURL=use-observable-value.mjs.map
10
+ //# sourceMappingURL=use-observable-value.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-observable-value.mjs","sources":["../src/use-observable-value.mts"],"sourcesContent":["import * as PreactCompat from 'preact/compat';\nimport { type InitializedObservable, type Observable } from 'synstate';\nimport { Optional } from 'ts-data-forge';\n\nexport function useObservableValue<A, B = A>(\n observable$: Observable<A>,\n initialValue: B,\n): A | B;\n\nexport function useObservableValue<A>(observable$: InitializedObservable<A>): A;\n\nexport function useObservableValue<A>(\n observable$: Observable<A>,\n): A | undefined;\n\nexport function useObservableValue<A, B = A>(\n observable$: Observable<A>,\n initialValue: B,\n): A | B;\n\nexport function useObservableValue<A, B = A>(\n observable$: Observable<A>,\n initialValue?: B,\n): A | B | undefined {\n const value = PreactCompat.useSyncExternalStore(\n (onStoreChange: () => void) => {\n const { unsubscribe } = observable$.subscribe(onStoreChange);\n\n return unsubscribe;\n },\n () => observable$.getSnapshot(),\n );\n\n return Optional.unwrapOr(value, initialValue);\n}\n"],"names":[],"mappings":";;;AAoBO,SAAS,kBAAA,CACd,aACA,YAAA,EACmB;AACnB,EAAA,MAAM,QAAQ,YAAA,CAAa,oBAAA;AAAA,IACzB,CAAC,aAAA,KAA8B;AAC7B,MAAA,MAAM,EAAE,WAAA,EAAY,GAAI,WAAA,CAAY,UAAU,aAAa,CAAA;AAE3D,MAAA,OAAO,WAAA;AAAA,IACT,CAAA;AAAA,IACA,MAAM,YAAY,WAAA;AAAY,GAChC;AAEA,EAAA,OAAO,QAAA,CAAS,QAAA,CAAS,KAAA,EAAO,YAAY,CAAA;AAC9C;;;;"}
1
+ {"version":3,"file":"use-observable-value.mjs","sourceRoot":"","sources":["../src/use-observable-value.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAazC,MAAM,UAAU,kBAAkB,CAChC,WAA0B,EAC1B,YAAgB;IAEhB,MAAM,KAAK,GAAG,YAAY,CAAC,oBAAoB,CAC7C,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,28 +1,20 @@
1
1
  import * as Preact from 'preact/hooks';
2
- import { source, withInitialValue } from 'synstate';
2
+ import { source, withInitialValue, } from 'synstate';
3
+ export const useValueAsObservable = (input) => {
4
+ const sourceObservable = Preact.useMemo(source, []);
5
+ const state = Preact.useMemo(() => sourceObservable.pipe(withInitialValue(input)), []);
6
+ Preact.useEffect(
3
7
 
4
- const useValueAsObservable = (input) => {
5
- const sourceObservable = Preact.useMemo(source, []);
6
- const state = Preact.useMemo(
7
- () => sourceObservable.pipe(withInitialValue(input)),
8
- []
9
- );
10
- Preact.useEffect(
11
- // eslint-disable-next-line unicorn/consistent-function-scoping
12
8
  () => () => {
13
- state.complete();
14
- },
15
- []
16
- );
17
- const setState = Preact.useCallback((nextState) => {
18
- sourceObservable.next(nextState);
19
- return nextState;
20
- }, []);
21
- Preact.useEffect(() => {
22
- setState(input);
23
- }, [input]);
24
- return state;
9
+ state.complete();
10
+ }, []);
11
+ const setState = Preact.useCallback((nextState) => {
12
+ sourceObservable.next(nextState);
13
+ return nextState;
14
+ }, []);
15
+ Preact.useEffect(() => {
16
+ setState(input);
17
+ }, [input]);
18
+ return state;
25
19
  };
26
-
27
- export { useValueAsObservable };
28
- //# sourceMappingURL=use-value-as-observable.mjs.map
20
+ //# sourceMappingURL=use-value-as-observable.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-value-as-observable.mjs","sources":["../src/use-value-as-observable.mts"],"sourcesContent":["import * as Preact from 'preact/hooks';\nimport {\n source,\n withInitialValue,\n type Observable,\n type SourceObservable,\n} from 'synstate';\n\nexport const useValueAsObservable = <A,>(input: A): Observable<A> => {\n const sourceObservable = Preact.useMemo<SourceObservable<A>>(source, []);\n\n const state = Preact.useMemo(\n () => sourceObservable.pipe(withInitialValue(input)),\n [],\n );\n\n Preact.useEffect(\n // eslint-disable-next-line unicorn/consistent-function-scoping\n () => () => {\n state.complete();\n },\n [],\n );\n\n const setState = Preact.useCallback((nextState: A): A => {\n sourceObservable.next(nextState);\n\n return nextState;\n }, []);\n\n Preact.useEffect(() => {\n setState(input);\n }, [input]);\n\n return state;\n};\n"],"names":[],"mappings":";;;AAQO,MAAM,oBAAA,GAAuB,CAAK,KAAA,KAA4B;AACnE,EAAA,MAAM,gBAAA,GAAmB,MAAA,CAAO,OAAA,CAA6B,MAAA,EAAQ,EAAE,CAAA;AAEvE,EAAA,MAAM,QAAQ,MAAA,CAAO,OAAA;AAAA,IACnB,MAAM,gBAAA,CAAiB,IAAA,CAAK,gBAAA,CAAiB,KAAK,CAAC,CAAA;AAAA,IACnD;AAAC,GACH;AAEA,EAAA,MAAA,CAAO,SAAA;AAAA;AAAA,IAEL,MAAM,MAAM;AACV,MAAA,KAAA,CAAM,QAAA,EAAS;AAAA,IACjB,CAAA;AAAA,IACA;AAAC,GACH;AAEA,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,WAAA,CAAY,CAAC,SAAA,KAAoB;AACvD,IAAA,gBAAA,CAAiB,KAAK,SAAS,CAAA;AAE/B,IAAA,OAAO,SAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAA,CAAO,UAAU,MAAM;AACrB,IAAA,QAAA,CAAS,KAAK,CAAA;AAAA,EAChB,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,OAAO,KAAA;AACT;;;;"}
1
+ {"version":3,"file":"use-value-as-observable.mjs","sourceRoot":"","sources":["../src/use-value-as-observable.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,MAAM,EACN,gBAAgB,GAGjB,MAAM,UAAU,CAAC;AAElB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAK,KAAQ,EAAiB,EAAE;IAClE,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAsB,MAAM,EAAE,EAAE,CAAC,CAAC;IAEzE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAC1B,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EACpD,EAAE,CACH,CAAC;IAEF,MAAM,CAAC,SAAS;IACd,+DAA+D;IAC/D,GAAG,EAAE,CAAC,GAAG,EAAE;QACT,KAAK,CAAC,QAAQ,EAAE,CAAC;IACnB,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,SAAY,EAAK,EAAE;QACtD,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEjC,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;QACpB,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synstate-preact-hooks",
3
- "version": "3.0.0",
3
+ "version": "3.0.2",
4
4
  "description": "Type-safe State Management Library for TypeScript/JavaScript",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,24 +28,24 @@
28
28
  "LICENSE"
29
29
  ],
30
30
  "dependencies": {
31
- "synstate": "3.0.0",
32
- "ts-data-forge": "^14.5.0",
31
+ "synstate": "3.0.2",
32
+ "ts-data-forge": "^14.7.0",
33
33
  "ts-type-forge": "^9.2.2"
34
34
  },
35
35
  "devDependencies": {
36
+ "@sumi-lang/cli": "0.0.1",
36
37
  "@testing-library/preact": "3.2.4",
37
38
  "@vitest/browser-playwright": "4.1.11",
38
- "eslint-config-typed": "5.10.0",
39
- "eslint-plugin-ts-data-forge": "0.5.1",
40
- "eslint-plugin-ts-fortress": "1.0.5",
41
- "eslint-plugin-ts-type-forge": "0.7.1",
39
+ "eslint-config-typed": "5.11.6",
40
+ "eslint-plugin-ts-data-forge": "0.7.3",
41
+ "eslint-plugin-ts-fortress": "1.2.2",
42
+ "eslint-plugin-ts-type-forge": "0.8.3",
42
43
  "playwright": "1.62.1",
43
44
  "preact": "10.29.8",
44
45
  "prettier": "3.9.6",
45
46
  "prettier-plugin-organize-imports": "4.3.0",
46
47
  "prettier-plugin-packagejson": "3.0.2",
47
- "rollup": "4.62.4",
48
- "ts-repo-utils": "10.3.2"
48
+ "ts-repo-utils": "10.6.1"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "preact": ">=10.0.0"
@@ -76,6 +76,7 @@
76
76
  "gi:src": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-repo-utils/src/cmd/gen-index-ts.mts ./src --index-ext .mts --export-ext .mjs --target-ext .mts --target-ext .tsx --exclude entry-point.mts",
77
77
  "lint": "eslint .",
78
78
  "lint:fix": "eslint . --fix",
79
+ "sumi:check": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../languages/sumi/cli/src/cmd/sumi.mts check ./tsconfig.sumi.json",
79
80
  "test": "pnpm run z:vitest:node run",
80
81
  "test:browser": "pnpm run z:vitest --project='Browser' run",
81
82
  "test:cov": "pnpm run z:vitest run --coverage",
@@ -13,11 +13,6 @@ export function useObservableValue<A>(
13
13
  observable$: Observable<A>,
14
14
  ): A | undefined;
15
15
 
16
- export function useObservableValue<A, B = A>(
17
- observable$: Observable<A>,
18
- initialValue: B,
19
- ): A | B;
20
-
21
16
  export function useObservableValue<A, B = A>(
22
17
  observable$: Observable<A>,
23
18
  initialValue?: B,