synstate-preact-signals 2.0.5 → 2.1.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.
@@ -1,5 +1,5 @@
1
- import { type ReadonlySignal } from '@preact/signals';
2
- import { type InitializedObservable } from 'synstate';
1
+ import type { ReadonlySignal } from '@preact/signals';
2
+ import { type InitializedObservable, type StateOptions } from 'synstate';
3
3
  /**
4
4
  * Creates a synstate boolean state with a `ReadonlySignal` for reading the
5
5
  * current value in Preact components.
@@ -25,7 +25,7 @@ import { type InitializedObservable } from 'synstate';
25
25
  * assert.strictEqual(isOpenSignal.value, true);
26
26
  * ```
27
27
  */
28
- export declare const createBooleanState: (initialState: boolean) => readonly [signal: ReadonlySignal<boolean>, utils: Readonly<{
28
+ export declare const createBooleanState: (initialState: boolean, options?: StateOptions<boolean>) => readonly [signal: ReadonlySignal<boolean>, utils: Readonly<{
29
29
  state: InitializedObservable<boolean>;
30
30
  setTrue: () => void;
31
31
  setFalse: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"create-boolean-state.d.mts","sourceRoot":"","sources":["../src/create-boolean-state.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,UAAU,CAAC;AAGlB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,kBAAkB,iBACf,OAAO,KACpB,SAAS,CACV,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,EAC/B,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,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAGlB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,kBAAkB,iBACf,OAAO,YACX,YAAY,CAAC,OAAO,CAAC,KAC9B,SAAS,CACV,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,EAC/B,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"}
@@ -25,8 +25,8 @@ import { toSignal } from './to-signal.mjs';
25
25
 
26
26
 
27
27
 
28
- export const createBooleanState = (initialState) => {
29
- const [state, { setTrue, setFalse, setState, toggle, updateState, resetState, getSnapshot, },] = createBooleanStateBase(initialState);
28
+ export const createBooleanState = (initialState, options) => {
29
+ const [state, { setTrue, setFalse, setState, toggle, updateState, resetState, getSnapshot, },] = createBooleanStateBase(initialState, options);
30
30
  const sig = toSignal(state);
31
31
  return [
32
32
  sig,
@@ -1 +1 @@
1
- {"version":3,"file":"create-boolean-state.mjs","sourceRoot":"","sources":["../src/create-boolean-state.mts"],"names":[],"mappings":"AACA,OAAO,EAEL,kBAAkB,IAAI,sBAAsB,GAC7C,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,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,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5B,OAAO;QACL,GAAG;QACH;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":"AACA,OAAO,EACL,kBAAkB,IAAI,sBAAsB,GAG7C,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,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,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5B,OAAO;QACL,GAAG;QACH;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 ReadonlySignal } from '@preact/signals';
2
- import { type InitializedObservable } from 'synstate';
3
- import { type Reducer } from 'ts-type-forge';
1
+ import type { ReadonlySignal } from '@preact/signals';
2
+ import { type InitializedObservable, type StateOptions } from 'synstate';
3
+ import type { Reducer } from 'ts-type-forge';
4
4
  /**
5
5
  * Creates a synstate reducer with a `ReadonlySignal` for reading the current
6
6
  * value in Preact components.
@@ -32,7 +32,7 @@ import { type Reducer } from 'ts-type-forge';
32
32
  * assert.strictEqual(getSnapshot(), 1);
33
33
  * ```
34
34
  */
35
- export declare const createReducer: <S, A>(reducer: Reducer<S, A>, initialState: S) => readonly [signal: ReadonlySignal<S>, dispatch: (action: A) => S, utils: Readonly<{
35
+ export declare const createReducer: <S, A>(reducer: Reducer<S, A>, initialState: S, options?: StateOptions<NoInfer<S>>) => readonly [signal: ReadonlySignal<S>, dispatch: (action: A) => S, utils: Readonly<{
36
36
  state: InitializedObservable<S>;
37
37
  getSnapshot: () => S;
38
38
  initialState: S;
@@ -1 +1 @@
1
- {"version":3,"file":"create-reducer.d.mts","sourceRoot":"","sources":["../src/create-reducer.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,WACvB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,gBACR,CAAC,KACd,SAAS,CACV,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,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,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,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,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,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"}
@@ -31,8 +31,8 @@ import { toSignal } from './to-signal.mjs';
31
31
 
32
32
 
33
33
 
34
- export const createReducer = (reducer, initialState) => {
35
- const [state, dispatch, { getSnapshot }] = createReducerBase(reducer, initialState);
34
+ export const createReducer = (reducer, initialState, options) => {
35
+ const [state, dispatch, { getSnapshot }] = createReducerBase(reducer, initialState, options);
36
36
  const sig = toSignal(state);
37
37
  return [sig, dispatch, { state, getSnapshot, initialState }];
38
38
  };
@@ -1 +1 @@
1
- {"version":3,"file":"create-reducer.mjs","sourceRoot":"","sources":["../src/create-reducer.mts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,IAAI,iBAAiB,GAEnC,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,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,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5B,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC"}
1
+ {"version":3,"file":"create-reducer.mjs","sourceRoot":"","sources":["../src/create-reducer.mts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,IAAI,iBAAiB,GAGnC,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,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,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5B,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- import { type ReadonlySignal } from '@preact/signals';
2
- import { type InitializedObservable } from 'synstate';
1
+ import type { ReadonlySignal } from '@preact/signals';
2
+ import { type InitializedObservable, type StateOptions } from 'synstate';
3
3
  /**
4
4
  * Creates a synstate state with a `ReadonlySignal` for reading the current
5
5
  * value in Preact components.
@@ -35,7 +35,7 @@ import { type InitializedObservable } from 'synstate';
35
35
  * assert.strictEqual(getSnapshot(), 0);
36
36
  * ```
37
37
  */
38
- export declare const createState: <S>(initialState: S) => readonly [signal: ReadonlySignal<S>, setState: (v: S) => S, utils: Readonly<{
38
+ export declare const createState: <S>(initialState: S, options?: StateOptions<NoInfer<S>>) => readonly [signal: ReadonlySignal<S>, setState: (v: S) => S, utils: Readonly<{
39
39
  state: InitializedObservable<S>;
40
40
  updateState: (updateFn: (prev: S) => S) => S;
41
41
  resetState: () => S;
@@ -1 +1 @@
1
- {"version":3,"file":"create-state.d.mts","sourceRoot":"","sources":["../src/create-state.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,UAAU,CAAC;AAGlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,gBACb,CAAC,KACd,SAAS,CACV,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,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,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAGlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,gBACb,CAAC,YACL,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KACjC,SAAS,CACV,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,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"}
@@ -35,8 +35,8 @@ import { toSignal } from './to-signal.mjs';
35
35
 
36
36
 
37
37
 
38
- export const createState = (initialState) => {
39
- const [state, setState, { updateState, resetState, getSnapshot }] = createStateBase(initialState);
38
+ export const createState = (initialState, options) => {
39
+ const [state, setState, { updateState, resetState, getSnapshot }] = createStateBase(initialState, options);
40
40
  const sig = toSignal(state);
41
41
  return [
42
42
  sig,
@@ -1 +1 @@
1
- {"version":3,"file":"create-state.mjs","sourceRoot":"","sources":["../src/create-state.mts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,IAAI,eAAe,GAE/B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,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,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5B,OAAO;QACL,GAAG;QACH,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":"AACA,OAAO,EACL,WAAW,IAAI,eAAe,GAG/B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,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,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5B,OAAO;QACL,GAAG;QACH,QAAQ;QACR;YACE,KAAK;YACL,WAAW;YACX,UAAU;YACV,WAAW;YACX,YAAY;SACb;KACO,CAAC;AACb,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type ReadonlySignal } from '@preact/signals';
2
- import { type InitializedObservable, type Observable } from 'synstate';
2
+ import type { InitializedObservable, Observable } from 'synstate';
3
3
  /**
4
4
  * Converts a synstate `InitializedObservable` into a Preact `ReadonlySignal`.
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"to-signal.d.mts","sourceRoot":"","sources":["../src/to-signal.mts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAGvE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC,GACpC,cAAc,CAAC,CAAC,CAAC,CAAC;AAErB;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,GACzB,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAEjC;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAC/B,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,GACV,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"to-signal.d.mts","sourceRoot":"","sources":["../src/to-signal.mts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGlE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC,GACpC,cAAc,CAAC,CAAC,CAAC,CAAC;AAErB;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,GACzB,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAEjC;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAC/B,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,GACV,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synstate-preact-signals",
3
- "version": "2.0.5",
3
+ "version": "2.1.0",
4
4
  "description": "Preact Signals integration for SynState - bridge between synstate observables and @preact/signals",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,20 +28,20 @@
28
28
  "LICENSE"
29
29
  ],
30
30
  "dependencies": {
31
- "synstate": "3.0.5",
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
36
  "@preact/signals": "2.11.2",
37
- "@vitest/browser-playwright": "5.0.1",
38
- "eslint-config-typed": "5.15.0",
39
- "eslint-plugin-ts-data-forge": "0.8.1",
40
- "eslint-plugin-ts-fortress": "1.2.3",
41
- "eslint-plugin-ts-type-forge": "0.8.4",
37
+ "@vitest/browser-playwright": "5.0.2",
38
+ "eslint-config-typed": "5.17.0",
39
+ "eslint-plugin-ts-data-forge": "0.8.3",
40
+ "eslint-plugin-ts-fortress": "1.3.0",
41
+ "eslint-plugin-ts-type-forge": "0.8.5",
42
42
  "playwright": "1.63.0",
43
43
  "preact": "10.29.8",
44
- "prettier": "3.9.8",
44
+ "prettier": "3.9.9",
45
45
  "prettier-plugin-organize-imports": "4.3.0",
46
46
  "prettier-plugin-packagejson": "3.0.2",
47
47
  "ts-repo-utils": "10.7.1"
@@ -1,7 +1,8 @@
1
- import { type ReadonlySignal } from '@preact/signals';
1
+ import type { ReadonlySignal } from '@preact/signals';
2
2
  import {
3
- type InitializedObservable,
4
3
  createBooleanState as createBooleanStateBase,
4
+ type InitializedObservable,
5
+ type StateOptions,
5
6
  } from 'synstate';
6
7
  import { toSignal } from './to-signal.mjs';
7
8
 
@@ -32,6 +33,7 @@ import { toSignal } from './to-signal.mjs';
32
33
  */
33
34
  export const createBooleanState = (
34
35
  initialState: boolean,
36
+ options?: StateOptions<boolean>,
35
37
  ): readonly [
36
38
  signal: ReadonlySignal<boolean>,
37
39
  utils: Readonly<{
@@ -57,7 +59,7 @@ export const createBooleanState = (
57
59
  resetState,
58
60
  getSnapshot,
59
61
  },
60
- ] = createBooleanStateBase(initialState);
62
+ ] = createBooleanStateBase(initialState, options);
61
63
 
62
64
  const sig = toSignal(state);
63
65
 
@@ -1,9 +1,10 @@
1
- import { type ReadonlySignal } from '@preact/signals';
1
+ import type { ReadonlySignal } from '@preact/signals';
2
2
  import {
3
3
  createReducer as createReducerBase,
4
4
  type InitializedObservable,
5
+ type StateOptions,
5
6
  } from 'synstate';
6
- import { type Reducer } from 'ts-type-forge';
7
+ import type { Reducer } from 'ts-type-forge';
7
8
  import { toSignal } from './to-signal.mjs';
8
9
 
9
10
  /**
@@ -40,6 +41,7 @@ import { toSignal } from './to-signal.mjs';
40
41
  export const createReducer = <S, A>(
41
42
  reducer: Reducer<S, A>,
42
43
  initialState: S,
44
+ options?: StateOptions<NoInfer<S>>,
43
45
  ): readonly [
44
46
  signal: ReadonlySignal<S>,
45
47
  dispatch: (action: A) => S,
@@ -52,6 +54,7 @@ export const createReducer = <S, A>(
52
54
  const [state, dispatch, { getSnapshot }] = createReducerBase(
53
55
  reducer,
54
56
  initialState,
57
+ options,
55
58
  );
56
59
 
57
60
  const sig = toSignal(state);
@@ -1,7 +1,8 @@
1
- import { type ReadonlySignal } from '@preact/signals';
1
+ import type { ReadonlySignal } from '@preact/signals';
2
2
  import {
3
3
  createState as createStateBase,
4
4
  type InitializedObservable,
5
+ type StateOptions,
5
6
  } from 'synstate';
6
7
  import { toSignal } from './to-signal.mjs';
7
8
 
@@ -42,6 +43,7 @@ import { toSignal } from './to-signal.mjs';
42
43
  */
43
44
  export const createState = <S,>(
44
45
  initialState: S,
46
+ options?: StateOptions<NoInfer<S>>,
45
47
  ): readonly [
46
48
  signal: ReadonlySignal<S>,
47
49
  setState: (v: S) => S,
@@ -54,7 +56,7 @@ export const createState = <S,>(
54
56
  }>,
55
57
  ] => {
56
58
  const [state, setState, { updateState, resetState, getSnapshot }] =
57
- createStateBase(initialState);
59
+ createStateBase(initialState, options);
58
60
 
59
61
  const sig = toSignal(state);
60
62
 
package/src/to-signal.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { signal, type ReadonlySignal } from '@preact/signals';
2
- import { type InitializedObservable, type Observable } from 'synstate';
2
+ import type { InitializedObservable, Observable } from 'synstate';
3
3
  import { Optional } from 'ts-data-forge';
4
4
 
5
5
  /**