preact-sigma 3.0.2 → 3.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.
- package/dist/index.d.mts +11 -11
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReadonlySignal, action, batch, computed, effect, untracked } from "@preact/signals";
|
|
2
|
-
import { Patch, freeze, immerable } from "immer";
|
|
2
|
+
import { Immutable, Patch, freeze, immerable } from "immer";
|
|
3
3
|
|
|
4
4
|
//#region src/internal/symbols.d.ts
|
|
5
5
|
declare const signalPrefix = "#";
|
|
@@ -83,7 +83,7 @@ type Draft<T> = T extends PrimitiveType ? T : T extends AtomicObject ? T : HasSi
|
|
|
83
83
|
*
|
|
84
84
|
* Use this instead of `immer.Immutable`
|
|
85
85
|
*/
|
|
86
|
-
type Immutable<T> = T extends PrimitiveType ? T : T extends AtomicObject ? T : HasSigmaRefBrand<T> extends true ? T : T extends ReadonlyMap<infer K, infer V> ? ReadonlyMap<Immutable<K>, Immutable<V>> : T extends ReadonlySet<infer V> ? ReadonlySet<Immutable<V>> : T extends WeakReferences ? T : T extends object ? { readonly [K in keyof T]: Immutable<T[K]> } : T;
|
|
86
|
+
type Immutable$1<T> = T extends PrimitiveType ? T : T extends AtomicObject ? T : HasSigmaRefBrand<T> extends true ? T : T extends ReadonlyMap<infer K, infer V> ? ReadonlyMap<Immutable$1<K>, Immutable$1<V>> : T extends ReadonlySet<infer V> ? ReadonlySet<Immutable$1<V>> : T extends WeakReferences ? T : T extends object ? { readonly [K in keyof T]: Immutable$1<T[K]> } : T;
|
|
87
87
|
//#endregion
|
|
88
88
|
//#region src/internal/types.d.ts
|
|
89
89
|
type Def = typeof sigmaTypeBrand;
|
|
@@ -110,13 +110,13 @@ type AnyState = Record<string, unknown>;
|
|
|
110
110
|
type AnyDefaultState<TState extends object> = { [K in keyof TState]?: DefaultStateValue<TState[K]> };
|
|
111
111
|
/** A cleanup resource supported by `.setup(...)`, including function, `dispose()`, and `Symbol.dispose` cleanup. */
|
|
112
112
|
type AnyResource = Cleanup | Disposable | DisposableLike | AbortController;
|
|
113
|
-
type ComputedValues<TComputeds> = { readonly [K in keyof TComputeds]: TComputeds[K] extends AnyFunction ? Immutable<ReturnType<TComputeds[K]>> : never };
|
|
113
|
+
type ComputedValues<TComputeds> = { readonly [K in keyof TComputeds]: TComputeds[K] extends AnyFunction ? Immutable$1<ReturnType<TComputeds[K]>> : never };
|
|
114
114
|
type QueryMethods<TQueries> = { [K in keyof TQueries]: TQueries[K] extends AnyFunction ? (...args: Parameters<TQueries[K]>) => ReturnType<TQueries[K]> : never };
|
|
115
115
|
type ActionMethods<TActions> = { [K in keyof TActions]: TActions[K] extends AnyFunction ? (...args: Parameters<TActions[K]>) => ReturnType<TActions[K]> : never };
|
|
116
116
|
type MergeObjects<TLeft, TRight, TConstraint extends object = object> = TRight extends TConstraint ? TLeft extends TConstraint ? Simplify<Omit<TLeft, keyof TRight> & TRight> : TRight : TLeft extends TConstraint ? TLeft : {};
|
|
117
117
|
type Simplify<T> = {} & { [K in keyof T]: T[K] };
|
|
118
|
-
type ComputedContext<T extends AnySigmaType, TOverrides extends Partial<SigmaDefinition> = {}> = Simplify<Immutable<MergeObjects<T[Def]["state"], TOverrides["state"]>> & ComputedValues<MergeObjects<T[Def]["computeds"], TOverrides["computeds"]>>>;
|
|
119
|
-
type ReadonlyContext<T extends AnySigmaType, TOverrides extends Partial<SigmaDefinition> = {}> = Simplify<Immutable<MergeObjects<T[Def]["state"], TOverrides["state"]>> & ComputedValues<MergeObjects<T[Def]["computeds"], TOverrides["computeds"]>> & QueryMethods<MergeObjects<T[Def]["queries"], TOverrides["queries"]>>>;
|
|
118
|
+
type ComputedContext<T extends AnySigmaType, TOverrides extends Partial<SigmaDefinition> = {}> = Simplify<Immutable$1<MergeObjects<T[Def]["state"], TOverrides["state"]>> & ComputedValues<MergeObjects<T[Def]["computeds"], TOverrides["computeds"]>>>;
|
|
119
|
+
type ReadonlyContext<T extends AnySigmaType, TOverrides extends Partial<SigmaDefinition> = {}> = Simplify<Immutable$1<MergeObjects<T[Def]["state"], TOverrides["state"]>> & ComputedValues<MergeObjects<T[Def]["computeds"], TOverrides["computeds"]>> & QueryMethods<MergeObjects<T[Def]["queries"], TOverrides["queries"]>>>;
|
|
120
120
|
type Emit<T extends AnySigmaType, TOverrides extends Partial<SigmaDefinition> = {}> = MergeObjects<T[Def]["events"], TOverrides["events"], AnyEvents> extends infer TEvents ? [TEvents] extends [AnyEvents] ? <TEvent extends string & keyof TEvents>(name: TEvent, ...[detail]: EventParameters<TEvents[TEvent]>) => void : never : never;
|
|
121
121
|
type ActionContext<T extends AnySigmaType, TOverrides extends Partial<SigmaDefinition> = {}> = Simplify<Draft<MergeObjects<T[Def]["state"], TOverrides["state"]>> & ComputedValues<MergeObjects<T[Def]["computeds"], TOverrides["computeds"]>> & QueryMethods<MergeObjects<T[Def]["queries"], TOverrides["queries"]>> & ActionMethods<MergeObjects<T[Def]["actions"], TOverrides["actions"]>> & {
|
|
122
122
|
/** Publishes the current action draft immediately so later boundaries use committed state. */commit(): void; /** Emits a typed event from the current action. */
|
|
@@ -150,8 +150,8 @@ type SigmaObserveOptions = {
|
|
|
150
150
|
};
|
|
151
151
|
/** The change object delivered to `.observe(...)` listeners. */
|
|
152
152
|
type SigmaObserveChange<TState extends AnyState, TWithPatches extends boolean = false> = {
|
|
153
|
-
readonly newState: Immutable<TState>;
|
|
154
|
-
readonly oldState: Immutable<TState>;
|
|
153
|
+
readonly newState: Immutable$1<TState>;
|
|
154
|
+
readonly oldState: Immutable$1<TState>;
|
|
155
155
|
} & (TWithPatches extends true ? {
|
|
156
156
|
readonly inversePatches: readonly Patch[];
|
|
157
157
|
readonly patches: readonly Patch[];
|
|
@@ -175,7 +175,7 @@ type EventMethods<TEvents extends AnyEvents | undefined> = [undefined] extends [
|
|
|
175
175
|
type SetupMethods<TSetupArgs extends any[] | undefined> = [TSetupArgs] extends [undefined] ? never : {
|
|
176
176
|
/** Runs every registered setup handler and returns one cleanup function for the active setup. */setup(...args: Extract<TSetupArgs, any[]>): Cleanup;
|
|
177
177
|
};
|
|
178
|
-
type MapSigmaDefinition<T extends SigmaDefinition> = keyof T extends infer K ? K extends "state" ? Immutable<T[K]> & SignalAccessors<Immutable<T[K]>> : K extends "computeds" ? ComputedValues<T[K]> & SignalAccessors<ComputedValues<T[K]>> : K extends "queries" ? QueryMethods<T[K]> : K extends "actions" ? ActionMethods<T[K]> : K extends "events" ? EventMethods<T[K]> : K extends "setupArgs" ? SetupMethods<T[K]> : never : never;
|
|
178
|
+
type MapSigmaDefinition<T extends SigmaDefinition> = keyof T extends infer K ? K extends "state" ? Immutable$1<T[K]> & SignalAccessors<Immutable$1<T[K]>> : K extends "computeds" ? ComputedValues<T[K]> & SignalAccessors<ComputedValues<T[K]>> : K extends "queries" ? QueryMethods<T[K]> : K extends "actions" ? ActionMethods<T[K]> : K extends "events" ? EventMethods<T[K]> : K extends "setupArgs" ? SetupMethods<T[K]> : never : never;
|
|
179
179
|
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
|
|
180
180
|
/** The public instance shape produced by a configured sigma type, including signal access inferred from the definition. */
|
|
181
181
|
type SigmaState<T extends SigmaDefinition = SigmaDefinition> = AnySigmaState & Simplify<UnionToIntersection<MapSigmaDefinition<T>>>;
|
|
@@ -203,7 +203,7 @@ declare function setAutoFreeze(autoFreeze: boolean): void;
|
|
|
203
203
|
* referenced values. Its type is inferred from the instance's sigma-state
|
|
204
204
|
* definition.
|
|
205
205
|
*/
|
|
206
|
-
declare function snapshot<T extends AnySigmaState>(publicInstance: T): T extends SigmaState<infer TDefinition> ? Immutable<TDefinition["state"]> : never;
|
|
206
|
+
declare function snapshot<T extends AnySigmaState>(publicInstance: T): T extends SigmaState<infer TDefinition> ? Immutable$1<TDefinition["state"]> : never;
|
|
207
207
|
/**
|
|
208
208
|
* Replaces an instance's committed public state from a snapshot object.
|
|
209
209
|
*
|
|
@@ -212,7 +212,7 @@ declare function snapshot<T extends AnySigmaState>(publicInstance: T): T extends
|
|
|
212
212
|
* notifies observers when the committed state changes. Its type is inferred
|
|
213
213
|
* from the instance's sigma-state definition.
|
|
214
214
|
*/
|
|
215
|
-
declare function replaceState<T extends AnySigmaState>(publicInstance: T, nextState: T extends SigmaState<infer TDefinition> ? Immutable<TDefinition["state"]> : never): void;
|
|
215
|
+
declare function replaceState<T extends AnySigmaState>(publicInstance: T, nextState: T extends SigmaState<infer TDefinition> ? Immutable$1<TDefinition["state"]> : never): void;
|
|
216
216
|
//#endregion
|
|
217
217
|
//#region src/framework.d.ts
|
|
218
218
|
/** Checks whether a value is an instance created by a configured sigma type. */
|
|
@@ -342,4 +342,4 @@ declare function useSigma<T extends AnySigmaState>(create: () => T, setupArgs?:
|
|
|
342
342
|
*/
|
|
343
343
|
declare function useListener<TTarget extends EventTarget | AnySigmaState, TEvent extends InferEventType<TTarget>>(target: TTarget | null, name: TEvent, listener: InferListener<TTarget, TEvent>): void;
|
|
344
344
|
//#endregion
|
|
345
|
-
export { type AnyDefaultState, type AnyEvents, type AnyResource, type AnySigmaState, type AnySigmaStateWithEvents, type AnyState, EventParameters, InferEventType, InferListener, type InferSetupArgs, type SigmaObserveChange, type SigmaObserveOptions, type SigmaRef, type SigmaState, SigmaTarget, SigmaType, action, batch, computed, effect, freeze, immerable, isSigmaState, listen, query, replaceState, reservedKeys, setAutoFreeze, sigmaEventsBrand, sigmaRefBrand, sigmaStateBrand, sigmaTypeBrand, signalPrefix, snapshot, untracked, useListener, useSigma };
|
|
345
|
+
export { type AnyDefaultState, type AnyEvents, type AnyResource, type AnySigmaState, type AnySigmaStateWithEvents, type AnyState, EventParameters, type Immutable, InferEventType, InferListener, type InferSetupArgs, type SigmaObserveChange, type SigmaObserveOptions, type SigmaRef, type SigmaState, SigmaTarget, SigmaType, action, batch, computed, effect, freeze, immerable, isSigmaState, listen, query, replaceState, reservedKeys, setAutoFreeze, sigmaEventsBrand, sigmaRefBrand, sigmaStateBrand, sigmaTypeBrand, signalPrefix, snapshot, untracked, useListener, useSigma };
|