@signalium/query 1.0.4 → 1.0.6
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/CHANGELOG.md +23 -0
- package/dist/cjs/MemoryEvictionManager.js +56 -0
- package/dist/cjs/MemoryEvictionManager.js.map +1 -0
- package/dist/cjs/NetworkManager.js +21 -1
- package/dist/cjs/NetworkManager.js.map +1 -1
- package/dist/cjs/QueryClient.js +12 -600
- package/dist/cjs/QueryClient.js.map +1 -1
- package/dist/cjs/QueryResult.js +491 -0
- package/dist/cjs/QueryResult.js.map +1 -0
- package/dist/cjs/QueryStore.js +2 -6
- package/dist/cjs/QueryStore.js.map +1 -1
- package/dist/cjs/RefetchManager.js +88 -0
- package/dist/cjs/RefetchManager.js.map +1 -0
- package/dist/cjs/errors.js +13 -12
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.js +8 -11
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/parseEntities.js +1 -1
- package/dist/cjs/parseEntities.js.map +1 -1
- package/dist/cjs/proxy.js +2 -2
- package/dist/cjs/proxy.js.map +1 -1
- package/dist/cjs/query.js +60 -19
- package/dist/cjs/query.js.map +1 -1
- package/dist/cjs/stores/async.js +290 -2
- package/dist/cjs/stores/async.js.map +1 -1
- package/dist/cjs/stores/shared.js +19 -0
- package/dist/cjs/stores/shared.js.map +1 -0
- package/dist/cjs/stores/sync.js +201 -4
- package/dist/cjs/stores/sync.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/typeDefs.js +221 -116
- package/dist/cjs/typeDefs.js.map +1 -1
- package/dist/cjs/utils.js +0 -42
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/MemoryEvictionManager.d.ts +19 -0
- package/dist/esm/MemoryEvictionManager.d.ts.map +1 -0
- package/dist/esm/MemoryEvictionManager.js +51 -0
- package/dist/esm/MemoryEvictionManager.js.map +1 -0
- package/dist/esm/NetworkManager.d.ts +8 -0
- package/dist/esm/NetworkManager.d.ts.map +1 -1
- package/dist/esm/NetworkManager.js +19 -0
- package/dist/esm/NetworkManager.js.map +1 -1
- package/dist/esm/QueryClient.d.ts +33 -86
- package/dist/esm/QueryClient.d.ts.map +1 -1
- package/dist/esm/QueryClient.js +11 -599
- package/dist/esm/QueryClient.js.map +1 -1
- package/dist/esm/QueryResult.d.ts +66 -0
- package/dist/esm/QueryResult.d.ts.map +1 -0
- package/dist/esm/QueryResult.js +487 -0
- package/dist/esm/QueryResult.js.map +1 -0
- package/dist/esm/QueryStore.d.ts.map +1 -1
- package/dist/esm/QueryStore.js +2 -6
- package/dist/esm/QueryStore.js.map +1 -1
- package/dist/esm/RefetchManager.d.ts +18 -0
- package/dist/esm/RefetchManager.d.ts.map +1 -0
- package/dist/esm/RefetchManager.js +83 -0
- package/dist/esm/RefetchManager.js.map +1 -0
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +13 -12
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.d.ts +4 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/parseEntities.js +2 -2
- package/dist/esm/parseEntities.js.map +1 -1
- package/dist/esm/proxy.js +3 -3
- package/dist/esm/proxy.js.map +1 -1
- package/dist/esm/query.d.ts +2 -0
- package/dist/esm/query.d.ts.map +1 -1
- package/dist/esm/query.js +59 -20
- package/dist/esm/query.js.map +1 -1
- package/dist/esm/stores/async.d.ts +63 -1
- package/dist/esm/stores/async.d.ts.map +1 -1
- package/dist/esm/stores/async.js +289 -1
- package/dist/esm/stores/async.js.map +1 -1
- package/dist/esm/stores/shared.d.ts +8 -0
- package/dist/esm/stores/shared.d.ts.map +1 -0
- package/dist/esm/stores/shared.js +11 -0
- package/dist/esm/stores/shared.js.map +1 -0
- package/dist/esm/stores/sync.d.ts +37 -1
- package/dist/esm/stores/sync.d.ts.map +1 -1
- package/dist/esm/stores/sync.js +198 -1
- package/dist/esm/stores/sync.js.map +1 -1
- package/dist/esm/typeDefs.d.ts +25 -8
- package/dist/esm/typeDefs.d.ts.map +1 -1
- package/dist/esm/typeDefs.js +220 -116
- package/dist/esm/typeDefs.js.map +1 -1
- package/dist/esm/types.d.ts +2 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils.d.ts +1 -4
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +0 -40
- package/dist/esm/utils.js.map +1 -1
- package/package.json +3 -3
|
@@ -11,10 +11,12 @@
|
|
|
11
11
|
* - Self-contained validator (no external dependencies except Signalium)
|
|
12
12
|
*/
|
|
13
13
|
import { type Context } from 'signalium';
|
|
14
|
-
import { QueryResult, EntityDef,
|
|
15
|
-
import { EntityRecord } from './EntityMap.js';
|
|
16
|
-
import { QueryStore } from './QueryStore.js';
|
|
14
|
+
import { QueryResult, EntityDef, RefetchInterval, NetworkMode, RetryConfig, TypeDef } from './types.js';
|
|
15
|
+
import { EntityRecord, EntityStore } from './EntityMap.js';
|
|
17
16
|
import { NetworkManager } from './NetworkManager.js';
|
|
17
|
+
import { QueryResultImpl } from './QueryResult.js';
|
|
18
|
+
import { RefetchManager } from './RefetchManager.js';
|
|
19
|
+
import { MemoryEvictionManager } from './MemoryEvictionManager.js';
|
|
18
20
|
export interface QueryContext {
|
|
19
21
|
fetch: typeof fetch;
|
|
20
22
|
evictionMultiplier?: number;
|
|
@@ -45,14 +47,16 @@ export declare const enum QueryType {
|
|
|
45
47
|
export interface QueryDefinition<Params extends QueryParams | undefined, Result> {
|
|
46
48
|
type: QueryType.Query;
|
|
47
49
|
id: string;
|
|
48
|
-
shape:
|
|
50
|
+
shape: TypeDef;
|
|
51
|
+
shapeKey: number;
|
|
49
52
|
fetchFn: (context: QueryContext, params: Params, prevResult?: Result) => Promise<Result>;
|
|
50
53
|
cache?: QueryCacheOptions;
|
|
51
54
|
}
|
|
52
55
|
export interface InfiniteQueryDefinition<Params extends QueryParams | undefined, Result> {
|
|
53
56
|
type: QueryType.InfiniteQuery;
|
|
54
57
|
id: string;
|
|
55
|
-
shape:
|
|
58
|
+
shape: TypeDef;
|
|
59
|
+
shapeKey: number;
|
|
56
60
|
fetchFn: (context: QueryContext, params: Params, prevResult?: Result) => Promise<Result>;
|
|
57
61
|
pagination: QueryPaginationOptions<Result>;
|
|
58
62
|
cache?: QueryCacheOptions;
|
|
@@ -61,96 +65,40 @@ export interface StreamQueryDefinition<Params extends QueryParams | undefined, R
|
|
|
61
65
|
type: QueryType.Stream;
|
|
62
66
|
id: string;
|
|
63
67
|
shape: EntityDef;
|
|
68
|
+
shapeKey: number;
|
|
64
69
|
subscribeFn: (context: QueryContext, params: Params, onUpdate: (update: Partial<Result>) => void) => () => void;
|
|
65
70
|
cache?: StreamCacheOptions;
|
|
66
71
|
}
|
|
67
72
|
export type AnyQueryDefinition<Params extends QueryParams | undefined, Result> = QueryDefinition<Params, Result> | InfiniteQueryDefinition<Params, Result> | StreamQueryDefinition<Params, Result>;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
private buckets;
|
|
73
|
-
constructor(multiplier?: number);
|
|
74
|
-
addQuery(instance: QueryResultImpl<any>): void;
|
|
75
|
-
removeQuery(query: QueryResultImpl<any>): void;
|
|
76
|
-
private tick;
|
|
77
|
-
destroy(): void;
|
|
78
|
-
}
|
|
79
|
-
declare class MemoryEvictionManager {
|
|
80
|
-
private queryClient;
|
|
81
|
-
private multiplier;
|
|
82
|
-
private intervalId;
|
|
83
|
-
private currentFlush;
|
|
84
|
-
private nextFlush;
|
|
85
|
-
constructor(queryClient: QueryClient, multiplier?: number);
|
|
86
|
-
scheduleEviction(queryKey: number): void;
|
|
87
|
-
cancelEviction(queryKey: number): void;
|
|
88
|
-
private tick;
|
|
89
|
-
destroy(): void;
|
|
73
|
+
export interface CachedQuery {
|
|
74
|
+
value: unknown;
|
|
75
|
+
refIds: Set<number> | undefined;
|
|
76
|
+
updatedAt: number;
|
|
90
77
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
def: AnyQueryDefinition<any, any>;
|
|
98
|
-
queryKey: number;
|
|
99
|
-
private queryClient;
|
|
100
|
-
private initialized;
|
|
101
|
-
private isRefetchingSignal;
|
|
102
|
-
private isFetchingMoreSignal;
|
|
103
|
-
private updatedAt;
|
|
104
|
-
private params;
|
|
105
|
-
private refIds;
|
|
106
|
-
private refetchPromise;
|
|
107
|
-
private fetchMorePromise;
|
|
108
|
-
private attemptCount;
|
|
109
|
-
private unsubscribe?;
|
|
110
|
-
private relay;
|
|
111
|
-
private _relayState;
|
|
112
|
-
private wasOffline;
|
|
113
|
-
private get relayState();
|
|
114
|
-
private _nextPageParams;
|
|
115
|
-
private get nextPageParams();
|
|
116
|
-
constructor(def: AnyQueryDefinition<any, any>, queryClient: QueryClient, queryKey: number, params: QueryParams | undefined);
|
|
117
|
-
get value(): T | undefined;
|
|
118
|
-
get error(): unknown;
|
|
119
|
-
get isPending(): boolean;
|
|
120
|
-
get isRejected(): boolean;
|
|
121
|
-
get isResolved(): boolean;
|
|
122
|
-
get isSettled(): boolean;
|
|
123
|
-
get isReady(): boolean;
|
|
124
|
-
private get _version();
|
|
125
|
-
private get _signal();
|
|
126
|
-
private get _flags();
|
|
127
|
-
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<TResult1 | TResult2>;
|
|
128
|
-
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined): Promise<T | TResult>;
|
|
129
|
-
finally(onfinally?: (() => void) | null | undefined): Promise<T>;
|
|
130
|
-
get [Symbol.toStringTag](): string;
|
|
78
|
+
export interface QueryStore {
|
|
79
|
+
/**
|
|
80
|
+
* Asynchronously retrieves a document by key.
|
|
81
|
+
* May return undefined if the document is not in the store.
|
|
82
|
+
*/
|
|
83
|
+
loadQuery(queryDef: QueryDefinition<any, any>, queryKey: number, entityMap: EntityStore): MaybePromise<CachedQuery | undefined>;
|
|
131
84
|
/**
|
|
132
|
-
*
|
|
85
|
+
* Synchronously stores a document with optional reference IDs.
|
|
86
|
+
* This is fire-and-forget for async implementations.
|
|
133
87
|
*/
|
|
134
|
-
|
|
88
|
+
saveQuery(queryDef: QueryDefinition<any, any>, queryKey: number, value: unknown, updatedAt: number, refIds?: Set<number>): void;
|
|
135
89
|
/**
|
|
136
|
-
*
|
|
137
|
-
*
|
|
90
|
+
* Synchronously stores an entity with optional reference IDs.
|
|
91
|
+
* This is fire-and-forget for async implementations.
|
|
138
92
|
*/
|
|
139
|
-
|
|
93
|
+
saveEntity(entityKey: number, value: unknown, refIds?: Set<number>): void;
|
|
140
94
|
/**
|
|
141
|
-
*
|
|
95
|
+
* Marks a query as accessed, updating the LRU queue.
|
|
96
|
+
* Handles eviction internally when the cache is full.
|
|
142
97
|
*/
|
|
143
|
-
|
|
144
|
-
refetch(): Promise<T>;
|
|
145
|
-
fetchNextPage(): Promise<T>;
|
|
146
|
-
get isRefetching(): boolean;
|
|
147
|
-
get isFetchingMore(): boolean;
|
|
148
|
-
get isFetching(): boolean;
|
|
149
|
-
get hasNextPage(): boolean;
|
|
150
|
-
get isStale(): boolean;
|
|
151
|
-
get isPaused(): boolean;
|
|
152
|
-
private getRetryConfig;
|
|
98
|
+
activateQuery(queryDef: QueryDefinition<any, any>, queryKey: number): void;
|
|
153
99
|
}
|
|
100
|
+
export type MaybePromise<T> = T | Promise<T>;
|
|
101
|
+
export declare const queryKeyFor: (queryDef: AnyQueryDefinition<any, any>, params: unknown) => number;
|
|
154
102
|
export declare class QueryClient {
|
|
155
103
|
private store;
|
|
156
104
|
private context;
|
|
@@ -160,11 +108,11 @@ export declare class QueryClient {
|
|
|
160
108
|
refetchManager: RefetchManager;
|
|
161
109
|
networkManager: NetworkManager;
|
|
162
110
|
isServer: boolean;
|
|
163
|
-
constructor(store: QueryStore, context?: QueryContext, networkManager?: NetworkManager);
|
|
111
|
+
constructor(store: QueryStore, context?: QueryContext, networkManager?: NetworkManager, memoryEvictionManager?: MemoryEvictionManager, refetchManager?: RefetchManager);
|
|
164
112
|
getContext(): QueryContext;
|
|
165
113
|
saveQueryData(queryDef: AnyQueryDefinition<QueryParams | undefined, unknown>, queryKey: number, data: unknown, updatedAt: number, entityRefs: Set<number>): void;
|
|
166
114
|
activateQuery(queryInstance: QueryResultImpl<unknown>): void;
|
|
167
|
-
loadCachedQuery(queryDef: AnyQueryDefinition<QueryParams | undefined, unknown>, queryKey: number):
|
|
115
|
+
loadCachedQuery(queryDef: AnyQueryDefinition<QueryParams | undefined, unknown>, queryKey: number): MaybePromise<CachedQuery | undefined>;
|
|
168
116
|
/**
|
|
169
117
|
* Loads a query from the document store and returns a QueryResult
|
|
170
118
|
* that triggers fetches and prepopulates with cached data
|
|
@@ -175,5 +123,4 @@ export declare class QueryClient {
|
|
|
175
123
|
destroy(): void;
|
|
176
124
|
}
|
|
177
125
|
export declare const QueryClientContext: Context<QueryClient | undefined>;
|
|
178
|
-
export {};
|
|
179
126
|
//# sourceMappingURL=QueryClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryClient.d.ts","sourceRoot":"","sources":["../../src/QueryClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"QueryClient.d.ts","sourceRoot":"","sources":["../../src/QueryClient.ts"],"names":[],"mappings":"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"}
|