@solidjs/signals 0.9.1 → 0.9.3
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/dev.js +227 -85
- package/dist/node.cjs +703 -571
- package/dist/prod.js +505 -376
- package/dist/types/core/constants.d.ts +1 -0
- package/dist/types/core/core.d.ts +5 -2
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/core/scheduler.d.ts +10 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/store/projection.d.ts +8 -3
- package/dist/types/store/store.d.ts +10 -6
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NOT_PENDING } from "./constants.js";
|
|
1
|
+
import { $REFRESH, NOT_PENDING } from "./constants.js";
|
|
2
2
|
import { type IQueue, type Transition } from "./scheduler.js";
|
|
3
3
|
export interface Disposable {
|
|
4
4
|
(): void;
|
|
@@ -16,6 +16,7 @@ export interface SignalOptions<T> {
|
|
|
16
16
|
equals?: ((prev: T, next: T) => boolean) | false;
|
|
17
17
|
pureWrite?: boolean;
|
|
18
18
|
unobserved?: () => void;
|
|
19
|
+
lazy?: boolean;
|
|
19
20
|
}
|
|
20
21
|
export interface RawSignal<T> {
|
|
21
22
|
id?: string;
|
|
@@ -117,5 +118,7 @@ export declare function runWithOwner<T>(owner: Owner | null, fn: () => T): T;
|
|
|
117
118
|
export declare function staleValues<T>(fn: () => T, set?: boolean): T;
|
|
118
119
|
export declare function pending<T>(fn: () => T): T;
|
|
119
120
|
export declare function isPending(fn: () => any): boolean;
|
|
120
|
-
export declare function refresh<T>(fn: () => T)
|
|
121
|
+
export declare function refresh<T>(fn: (() => T) | (T & {
|
|
122
|
+
[$REFRESH]: any;
|
|
123
|
+
})): T;
|
|
121
124
|
export declare function isRefreshing(): boolean;
|
|
@@ -2,5 +2,5 @@ export { ContextNotFoundError, NoOwnerError, NotReadyError } from "./error.js";
|
|
|
2
2
|
export { createContext, getContext, setContext, type Context, type ContextRecord } from "./context.js";
|
|
3
3
|
export { getObserver, isEqual, untrack, getOwner, runWithOwner, createOwner, createRoot, computed, dispose, signal, read, setSignal, onCleanup, getNextChildId, isPending, pending, refresh, isRefreshing, staleValues, handleAsync, type Owner, type Computed, type Root, type Signal, type SignalOptions } from "./core.js";
|
|
4
4
|
export { effect, type Effect } from "./effect.js";
|
|
5
|
-
export { flush, Queue, type IQueue, type QueueCallback } from "./scheduler.js";
|
|
5
|
+
export { action, flush, Queue, type IQueue, type QueueCallback } from "./scheduler.js";
|
|
6
6
|
export * from "./constants.js";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Computed, Signal } from "./core.js";
|
|
2
2
|
import { type Heap } from "./heap.js";
|
|
3
|
+
export declare let optimisticRun: boolean;
|
|
3
4
|
export declare const dirtyQueue: Heap;
|
|
4
5
|
export declare const zombieQueue: Heap;
|
|
5
6
|
export declare let clock: number;
|
|
@@ -13,7 +14,10 @@ export interface Transition {
|
|
|
13
14
|
time: number;
|
|
14
15
|
asyncNodes: Computed<any>[];
|
|
15
16
|
pendingNodes: Signal<any>[];
|
|
17
|
+
optimisticNodes: Signal<any>[];
|
|
18
|
+
actions: Array<Generator<any, any, any> | AsyncGenerator<any, any, any>>;
|
|
16
19
|
queueStash: QueueStub;
|
|
20
|
+
done: boolean | Transition;
|
|
17
21
|
}
|
|
18
22
|
export declare function schedule(): void;
|
|
19
23
|
export interface IQueue {
|
|
@@ -43,17 +47,21 @@ export declare class Queue implements IQueue {
|
|
|
43
47
|
export declare class GlobalQueue extends Queue {
|
|
44
48
|
_running: boolean;
|
|
45
49
|
_pendingNodes: Signal<any>[];
|
|
50
|
+
_optimisticNodes: Signal<any>[];
|
|
46
51
|
static _update: (el: Computed<unknown>) => void;
|
|
47
52
|
static _dispose: (el: Computed<unknown>, self: boolean, zombie: boolean) => void;
|
|
48
53
|
flush(): void;
|
|
49
54
|
notify(node: Computed<any>, mask: number, flags: number): boolean;
|
|
50
|
-
initTransition(node
|
|
55
|
+
initTransition(node?: Computed<any>): void;
|
|
51
56
|
}
|
|
57
|
+
export declare function notifySubs(node: Signal<any> | Computed<any>): void;
|
|
58
|
+
export declare function runOptimistic(activeTransition?: Transition | null): void;
|
|
52
59
|
export declare const globalQueue: GlobalQueue;
|
|
53
60
|
/**
|
|
54
61
|
* By default, changes are batched on the microtask queue which is an async process. You can flush
|
|
55
62
|
* the queue synchronously to get the latest updates by calling `flush()`.
|
|
56
63
|
*/
|
|
57
64
|
export declare function flush(): void;
|
|
58
|
-
export declare function runInTransition(
|
|
65
|
+
export declare function runInTransition<T>(transition: Transition, fn: () => T): T;
|
|
66
|
+
export declare function action<Args extends any[], Y, R>(genFn: (...args: Args) => Generator<Y, R, any> | AsyncGenerator<Y, R, any>): (...args: Args) => void;
|
|
59
67
|
export {};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ContextNotFoundError, NoOwnerError, NotReadyError, createContext, createRoot, runWithOwner, flush, getNextChildId, getContext, setContext, getOwner, onCleanup, getObserver, isEqual, untrack, isPending, pending, isRefreshing, refresh, SUPPORTS_PROXY } from "./core/index.js";
|
|
1
|
+
export { ContextNotFoundError, NoOwnerError, NotReadyError, action, createContext, createRoot, runWithOwner, flush, getNextChildId, getContext, setContext, getOwner, onCleanup, getObserver, isEqual, untrack, isPending, pending, isRefreshing, refresh, SUPPORTS_PROXY } from "./core/index.js";
|
|
2
2
|
export type { Owner, SignalOptions, Context, ContextRecord, IQueue } from "./core/index.js";
|
|
3
3
|
export * from "./signals.js";
|
|
4
4
|
export { mapArray, repeat, type Maybe } from "./map.js";
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
import { $REFRESH, type Computed } from "../core/index.js";
|
|
1
2
|
import { type Store, type StoreOptions } from "./store.js";
|
|
2
3
|
export declare function createProjectionInternal<T extends object = {}>(fn: (draft: T) => void | T | Promise<void | T> | AsyncIterable<void | T>, initialValue?: T, options?: StoreOptions): {
|
|
3
|
-
store:
|
|
4
|
-
|
|
4
|
+
store: Store<T> & {
|
|
5
|
+
[$REFRESH]: any;
|
|
6
|
+
};
|
|
7
|
+
node: Computed<void | T>;
|
|
5
8
|
};
|
|
6
9
|
/**
|
|
7
10
|
* Creates a mutable derived value
|
|
8
11
|
*
|
|
9
12
|
* @see {@link https://github.com/solidjs/x-reactivity#createprojection}
|
|
10
13
|
*/
|
|
11
|
-
export declare function createProjection<T extends
|
|
14
|
+
export declare function createProjection<T extends object = {}>(fn: (draft: T) => void | T | Promise<void | T> | AsyncIterable<void | T>, initialValue?: T, options?: StoreOptions): Store<T> & {
|
|
15
|
+
[$REFRESH]: any;
|
|
16
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Computed, type Signal } from "../core/index.js";
|
|
1
|
+
import { $REFRESH, type Computed, type Signal } from "../core/index.js";
|
|
2
2
|
export type Store<T> = Readonly<T>;
|
|
3
3
|
export type StoreSetter<T> = (fn: (state: T) => T | void) => void;
|
|
4
4
|
export type StoreOptions = {
|
|
@@ -17,22 +17,26 @@ export type StoreNode = {
|
|
|
17
17
|
[STORE_HAS]?: DataNodes;
|
|
18
18
|
[STORE_WRAP]?: (value: any, target?: StoreNode) => any;
|
|
19
19
|
[STORE_LOOKUP]?: WeakMap<any, any>;
|
|
20
|
-
[STORE_FIREWALL]?:
|
|
20
|
+
[STORE_FIREWALL]?: Computed<any>;
|
|
21
21
|
};
|
|
22
22
|
export declare namespace SolidStore {
|
|
23
23
|
interface Unwrappable {
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
export type NotWrappable = string | number | bigint | symbol | boolean | Function | null | undefined | SolidStore.Unwrappable[keyof SolidStore.Unwrappable];
|
|
27
|
-
export declare function createStoreProxy<T extends object>(value: T, traps?: ProxyHandler<StoreNode>, extend?:
|
|
28
|
-
export declare const storeLookup: WeakMap<
|
|
27
|
+
export declare function createStoreProxy<T extends object>(value: T, traps?: ProxyHandler<StoreNode>, extend?: (target: StoreNode) => void): any;
|
|
28
|
+
export declare const storeLookup: WeakMap<WeakKey, any>;
|
|
29
29
|
export declare function wrap<T extends Record<PropertyKey, any>>(value: T, target?: StoreNode): T;
|
|
30
30
|
export declare function isWrappable<T>(obj: T | NotWrappable): obj is T;
|
|
31
|
+
export declare function setWriteOverride(value: boolean): void;
|
|
31
32
|
export declare function getKeys(source: Record<PropertyKey, any>, override: Record<PropertyKey, any> | undefined, enumerable?: boolean): PropertyKey[];
|
|
32
33
|
export declare function getPropertyDescriptor(source: Record<PropertyKey, any>, override: Record<PropertyKey, any> | undefined, property: PropertyKey): PropertyDescriptor | undefined;
|
|
33
34
|
export declare const storeTraps: ProxyHandler<StoreNode>;
|
|
34
35
|
export declare function storeSetter<T extends object>(store: Store<T>, fn: (draft: T) => T | void): void;
|
|
35
|
-
|
|
36
|
-
export declare function createStore<T extends object = {}>(
|
|
36
|
+
type NoFn<T> = T extends Function ? never : T;
|
|
37
|
+
export declare function createStore<T extends object = {}>(store: NoFn<T> | Store<NoFn<T>>): [get: Store<T>, set: StoreSetter<T>];
|
|
38
|
+
export declare function createStore<T extends object = {}>(fn: (store: T) => void | T | Promise<void | T> | AsyncIterable<void | T>, store?: NoFn<T> | Store<NoFn<T>>, options?: StoreOptions): [get: Store<T> & {
|
|
39
|
+
[$REFRESH]: any;
|
|
40
|
+
}, set: StoreSetter<T>];
|
|
37
41
|
export declare function deep<T extends object>(store: Store<T>): Store<T>;
|
|
38
42
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solidjs/signals",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Ryan Carniato",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
"@rollup/plugin-replace": "^6.0.3",
|
|
24
24
|
"@rollup/plugin-terser": "^0.4.4",
|
|
25
25
|
"@rollup/plugin-typescript": "^12.3.0",
|
|
26
|
-
"@types/node": "^
|
|
26
|
+
"@types/node": "^25.0.8",
|
|
27
27
|
"rimraf": "^5.0.1",
|
|
28
28
|
"rollup": "^4.53.4",
|
|
29
29
|
"rollup-plugin-prettier": "^4.1.2",
|
|
30
30
|
"tslib": "^2.8.1",
|
|
31
|
-
"typescript": "5.
|
|
31
|
+
"typescript": "5.9.3",
|
|
32
32
|
"vite": "^5.4.10",
|
|
33
33
|
"vitest": "^2.0.0"
|
|
34
34
|
},
|