@signalium/query 1.0.9 → 1.0.11
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 +21 -0
- package/dist/cjs/EntityMap.js +63 -6
- package/dist/cjs/EntityMap.js.map +1 -1
- package/dist/cjs/QueryClient.js +71 -6
- package/dist/cjs/QueryClient.js.map +1 -1
- package/dist/cjs/QueryResult.js +506 -86
- package/dist/cjs/QueryResult.js.map +1 -1
- package/dist/cjs/QueryStore.js +0 -500
- package/dist/cjs/QueryStore.js.map +1 -1
- package/dist/cjs/errors.js +23 -0
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/parseEntities.js +14 -2
- package/dist/cjs/parseEntities.js.map +1 -1
- package/dist/cjs/proxy.js +76 -19
- package/dist/cjs/proxy.js.map +1 -1
- package/dist/cjs/query.js +65 -1
- package/dist/cjs/query.js.map +1 -1
- package/dist/cjs/react/use-query.js.map +1 -1
- package/dist/cjs/stores/async.js +38 -3
- package/dist/cjs/stores/async.js.map +1 -1
- package/dist/cjs/stores/shared.js +5 -1
- package/dist/cjs/stores/shared.js.map +1 -1
- package/dist/cjs/stores/sync.js +46 -10
- package/dist/cjs/stores/sync.js.map +1 -1
- package/dist/cjs/typeDefs.js +228 -5
- package/dist/cjs/typeDefs.js.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/EntityMap.d.ts +12 -4
- package/dist/esm/EntityMap.d.ts.map +1 -1
- package/dist/esm/EntityMap.js +64 -7
- package/dist/esm/EntityMap.js.map +1 -1
- package/dist/esm/QueryClient.d.ts +66 -13
- package/dist/esm/QueryClient.d.ts.map +1 -1
- package/dist/esm/QueryClient.js +68 -6
- package/dist/esm/QueryClient.js.map +1 -1
- package/dist/esm/QueryResult.d.ts +42 -8
- package/dist/esm/QueryResult.d.ts.map +1 -1
- package/dist/esm/QueryResult.js +510 -90
- package/dist/esm/QueryResult.js.map +1 -1
- package/dist/esm/QueryStore.d.ts +8 -104
- package/dist/esm/QueryStore.d.ts.map +1 -1
- package/dist/esm/QueryStore.js +1 -491
- package/dist/esm/QueryStore.js.map +1 -1
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +23 -0
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/parseEntities.d.ts.map +1 -1
- package/dist/esm/parseEntities.js +14 -2
- package/dist/esm/parseEntities.js.map +1 -1
- package/dist/esm/proxy.d.ts +2 -1
- package/dist/esm/proxy.d.ts.map +1 -1
- package/dist/esm/proxy.js +76 -20
- package/dist/esm/proxy.js.map +1 -1
- package/dist/esm/query.d.ts +29 -11
- package/dist/esm/query.d.ts.map +1 -1
- package/dist/esm/query.js +65 -1
- package/dist/esm/query.js.map +1 -1
- package/dist/esm/react/use-query.d.ts +2 -2
- package/dist/esm/react/use-query.d.ts.map +1 -1
- package/dist/esm/react/use-query.js.map +1 -1
- package/dist/esm/stores/async.d.ts +5 -3
- package/dist/esm/stores/async.d.ts.map +1 -1
- package/dist/esm/stores/async.js +39 -4
- package/dist/esm/stores/async.js.map +1 -1
- package/dist/esm/stores/shared.d.ts +2 -0
- package/dist/esm/stores/shared.d.ts.map +1 -1
- package/dist/esm/stores/shared.js +2 -0
- package/dist/esm/stores/shared.js.map +1 -1
- package/dist/esm/stores/sync.d.ts +6 -4
- package/dist/esm/stores/sync.d.ts.map +1 -1
- package/dist/esm/stores/sync.js +40 -5
- package/dist/esm/stores/sync.js.map +1 -1
- package/dist/esm/type-utils.d.ts +4 -0
- package/dist/esm/type-utils.d.ts.map +1 -1
- package/dist/esm/typeDefs.d.ts +81 -3
- package/dist/esm/typeDefs.d.ts.map +1 -1
- package/dist/esm/typeDefs.js +224 -4
- package/dist/esm/typeDefs.js.map +1 -1
- package/dist/esm/types.d.ts +99 -28
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/package.json +3 -3
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Entity System
|
|
3
3
|
// -----------------------------------------------------------------------------
|
|
4
4
|
import { hashValue } from 'signalium/utils';
|
|
5
|
+
import { parseValue } from './proxy.js';
|
|
5
6
|
import { ARRAY_KEY, RECORD_KEY, } from './types.js';
|
|
6
7
|
import { typeMaskOf } from './utils.js';
|
|
7
8
|
const entries = Object.entries;
|
|
@@ -20,7 +21,8 @@ export function parseUnionEntities(valueType, value, unionDef, queryClient, enti
|
|
|
20
21
|
if (typename === undefined || typeof typename !== 'string') {
|
|
21
22
|
const recordShape = unionDef.shape[RECORD_KEY];
|
|
22
23
|
if (recordShape === undefined || typeof recordShape === 'number') {
|
|
23
|
-
|
|
24
|
+
// Union of objects/entities requires typename for discrimination
|
|
25
|
+
throw new Error(`Typename field '${typenameField}' is required for union discrimination but was not found in the data`);
|
|
24
26
|
}
|
|
25
27
|
return parseRecordEntities(value, recordShape, queryClient, entityRefs);
|
|
26
28
|
}
|
|
@@ -88,7 +90,17 @@ export function parseObjectEntities(obj, objectShape, queryClient, entityRefs) {
|
|
|
88
90
|
}
|
|
89
91
|
return queryClient.saveEntity(key, obj, entityDef, childRefs).proxy;
|
|
90
92
|
}
|
|
91
|
-
//
|
|
93
|
+
// For non-entity objects, parse all fields (including enums, formatted values, etc.)
|
|
94
|
+
// Entities handle this lazily via their proxy
|
|
95
|
+
for (const [key, propDef] of entries(shape)) {
|
|
96
|
+
// Skip fields that were already processed as sub-entity paths
|
|
97
|
+
if (subEntityPaths !== undefined) {
|
|
98
|
+
if (typeof subEntityPaths === 'string' ? key === subEntityPaths : subEntityPaths.includes(key)) {
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
obj[key] = parseValue(obj[key], propDef, `${objectShape.typenameValue ?? 'object'}.${key}`);
|
|
103
|
+
}
|
|
92
104
|
return obj;
|
|
93
105
|
}
|
|
94
106
|
export function parseEntities(value, def, queryClient, entityRefs) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseEntities.js","sourceRoot":"","sources":["../../src/parseEntities.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EACL,SAAS,
|
|
1
|
+
{"version":3,"file":"parseEntities.js","sourceRoot":"","sources":["../../src/parseEntities.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/proxy.d.ts
CHANGED
|
@@ -10,5 +10,6 @@ export declare function parseValue(value: unknown, propDef: ObjectFieldTypeDef,
|
|
|
10
10
|
* Handles nested objects recursively.
|
|
11
11
|
*/
|
|
12
12
|
export declare function mergeValues<T extends Record<string, unknown>>(target: Record<string, unknown>, update: Record<string, unknown>): T;
|
|
13
|
-
export declare function createEntityProxy(id: number, entityRecord: PreloadedEntityRecord, def: ObjectDef | EntityDef, desc?: string): Record<string, unknown>;
|
|
13
|
+
export declare function createEntityProxy(id: number, entityRecord: PreloadedEntityRecord, def: ObjectDef | EntityDef, entityRelay: any, scopeOwner: object, desc?: string): Record<string, unknown>;
|
|
14
|
+
export declare function getProxyId(object: Record<string, unknown>): number | undefined;
|
|
14
15
|
//# sourceMappingURL=proxy.d.ts.map
|
package/dist/esm/proxy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/proxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/proxy.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,cAAc,EACd,SAAS,EAET,SAAS,EAET,kBAAkB,EAElB,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAiDvD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAMlF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,2BAM1G;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,SAAS,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,2BAcjH;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAkF7F;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,CAAC,CAWH;AAID,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,MAAM,EACV,YAAY,EAAE,qBAAqB,EACnC,GAAG,EAAE,SAAS,GAAG,SAAS,EAC1B,WAAW,EAAE,GAAG,EAChB,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmIzB;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAE9E"}
|
package/dist/esm/proxy.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { reactiveMethod, setScopeOwner } from 'signalium';
|
|
1
2
|
import { typeError } from './errors.js';
|
|
2
|
-
import { getFormat } from './typeDefs.js';
|
|
3
|
+
import { CaseInsensitiveSet, getFormat } from './typeDefs.js';
|
|
3
4
|
import { ARRAY_KEY, RECORD_KEY, } from './types.js';
|
|
4
5
|
import { typeMaskOf } from './utils.js';
|
|
5
6
|
const entries = Object.entries;
|
|
6
7
|
const isArray = Array.isArray;
|
|
7
|
-
const
|
|
8
|
+
const PROXY_ID = new WeakMap();
|
|
8
9
|
function parseUnionValue(valueType, value, unionDef, path) {
|
|
9
10
|
if (valueType === 64 /* Mask.ARRAY */) {
|
|
10
11
|
const shape = unionDef.shape[ARRAY_KEY];
|
|
@@ -20,7 +21,8 @@ function parseUnionValue(valueType, value, unionDef, path) {
|
|
|
20
21
|
if (typename === undefined || typeof typename !== 'string') {
|
|
21
22
|
const recordShape = unionDef.shape[RECORD_KEY];
|
|
22
23
|
if (recordShape === undefined || typeof recordShape === 'number') {
|
|
23
|
-
|
|
24
|
+
// Union of objects/entities requires typename for discrimination
|
|
25
|
+
throw new Error(`Typename field '${typenameField}' is required for union discrimination but was not found in the data`);
|
|
24
26
|
}
|
|
25
27
|
return parseRecordValue(value, recordShape, path);
|
|
26
28
|
}
|
|
@@ -44,7 +46,7 @@ export function parseRecordValue(record, recordShape, path) {
|
|
|
44
46
|
return record;
|
|
45
47
|
}
|
|
46
48
|
export function parseObjectValue(object, objectShape, path) {
|
|
47
|
-
if (
|
|
49
|
+
if (PROXY_ID.has(object)) {
|
|
48
50
|
// Is an entity proxy, so return it directly
|
|
49
51
|
return object;
|
|
50
52
|
}
|
|
@@ -56,6 +58,14 @@ export function parseObjectValue(object, objectShape, path) {
|
|
|
56
58
|
return object;
|
|
57
59
|
}
|
|
58
60
|
export function parseValue(value, propDef, path) {
|
|
61
|
+
// Handle case-insensitive enums
|
|
62
|
+
if (propDef instanceof CaseInsensitiveSet) {
|
|
63
|
+
const canonical = propDef.get(value);
|
|
64
|
+
if (canonical === undefined) {
|
|
65
|
+
throw typeError(path, propDef, value);
|
|
66
|
+
}
|
|
67
|
+
return canonical; // Return the canonical casing
|
|
68
|
+
}
|
|
59
69
|
// Handle Set-based constants/enums
|
|
60
70
|
if (propDef instanceof Set) {
|
|
61
71
|
if (!propDef.has(value)) {
|
|
@@ -65,6 +75,10 @@ export function parseValue(value, propDef, path) {
|
|
|
65
75
|
}
|
|
66
76
|
switch (typeof propDef) {
|
|
67
77
|
case 'string':
|
|
78
|
+
// If value is undefined/null, return the typename from definition
|
|
79
|
+
if (value === undefined || value === null) {
|
|
80
|
+
return propDef;
|
|
81
|
+
}
|
|
68
82
|
if (value !== propDef) {
|
|
69
83
|
throw typeError(path, propDef, value);
|
|
70
84
|
}
|
|
@@ -75,10 +89,9 @@ export function parseValue(value, propDef, path) {
|
|
|
75
89
|
if ((propDef & valueType) === 0) {
|
|
76
90
|
throw typeError(path, propDef, value);
|
|
77
91
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if ((propDef & 8192 /* Mask.HAS_STRING_FORMAT */) !== 0 && valueType === 8 /* Mask.STRING */) {
|
|
92
|
+
// Check if this field has a format - if so, parse with the format parser
|
|
93
|
+
if ((propDef & (8192 /* Mask.HAS_STRING_FORMAT */ | 4096 /* Mask.HAS_NUMBER_FORMAT */)) !== 0) {
|
|
94
|
+
// Lazy format parsing: parse the raw value using the format parser
|
|
82
95
|
return getFormat(propDef)(value);
|
|
83
96
|
}
|
|
84
97
|
return value;
|
|
@@ -96,10 +109,8 @@ export function parseValue(value, propDef, path) {
|
|
|
96
109
|
throw typeError(path, propMask, value);
|
|
97
110
|
}
|
|
98
111
|
if (valueType < 32 /* Mask.OBJECT */) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
if ((propMask & 8192 /* Mask.HAS_STRING_FORMAT */) !== 0 && valueType === 8 /* Mask.STRING */) {
|
|
112
|
+
// Check if this field has a format - if so, parse with the format parser
|
|
113
|
+
if ((propMask & (8192 /* Mask.HAS_STRING_FORMAT */ | 4096 /* Mask.HAS_NUMBER_FORMAT */)) !== 0) {
|
|
103
114
|
return getFormat(propMask)(value);
|
|
104
115
|
}
|
|
105
116
|
// value is a primitive, it has already passed the mask so return it now
|
|
@@ -123,7 +134,7 @@ export function parseValue(value, propDef, path) {
|
|
|
123
134
|
export function mergeValues(target, update) {
|
|
124
135
|
// Iterate over update properties
|
|
125
136
|
for (const [key, value] of entries(update)) {
|
|
126
|
-
if (typeof value === 'object' && value !== null && !isArray(value) && !
|
|
137
|
+
if (typeof value === 'object' && value !== null && !isArray(value) && !PROXY_ID.has(value)) {
|
|
127
138
|
mergeValues(target[key], value);
|
|
128
139
|
}
|
|
129
140
|
else {
|
|
@@ -133,26 +144,47 @@ export function mergeValues(target, update) {
|
|
|
133
144
|
return target;
|
|
134
145
|
}
|
|
135
146
|
const CustomNodeInspect = Symbol.for('nodejs.util.inspect.custom');
|
|
136
|
-
export function createEntityProxy(id, entityRecord, def, desc) {
|
|
147
|
+
export function createEntityProxy(id, entityRecord, def, entityRelay, scopeOwner, desc) {
|
|
137
148
|
// Cache for nested proxies - each proxy gets its own cache
|
|
138
149
|
const shape = def.shape;
|
|
150
|
+
// Get cached methods from the definition (evaluated once during reifyShape)
|
|
151
|
+
const methods = def.methods;
|
|
152
|
+
// Cache for wrapped reactive methods - each proxy gets its own bound methods
|
|
153
|
+
const wrappedMethods = new Map();
|
|
139
154
|
const toJSON = () => ({
|
|
140
155
|
__entityRef: id,
|
|
141
156
|
});
|
|
157
|
+
// We need to declare proxy first so we can reference it in the handler
|
|
158
|
+
let proxy;
|
|
142
159
|
const handler = {
|
|
143
160
|
get(target, prop) {
|
|
144
161
|
// Handle toJSON for serialization
|
|
145
162
|
if (prop === 'toJSON') {
|
|
146
163
|
return toJSON;
|
|
147
164
|
}
|
|
148
|
-
const {
|
|
149
|
-
|
|
165
|
+
const { data, cache, notifier } = entityRecord;
|
|
166
|
+
// Access relay value if it exists - this will activate it when watched in reactive context
|
|
167
|
+
// The relay access happens here to establish tracking when signal.value is read
|
|
168
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
169
|
+
entityRelay?.value;
|
|
170
|
+
notifier.consume();
|
|
150
171
|
// Check cache first, BEFORE any expensive checks
|
|
151
172
|
if (cache.has(prop)) {
|
|
152
173
|
return cache.get(prop);
|
|
153
174
|
}
|
|
154
|
-
|
|
155
|
-
|
|
175
|
+
// Check for method access
|
|
176
|
+
if (methods && typeof prop === 'string' && prop in methods) {
|
|
177
|
+
let wrapped = wrappedMethods.get(prop);
|
|
178
|
+
if (!wrapped) {
|
|
179
|
+
// Create reactive method wrapper bound to the proxy
|
|
180
|
+
// Bind the method to the proxy so `this` refers to the entity
|
|
181
|
+
wrapped = reactiveMethod(proxy, methods[prop].bind(proxy));
|
|
182
|
+
wrappedMethods.set(prop, wrapped);
|
|
183
|
+
}
|
|
184
|
+
return wrapped;
|
|
185
|
+
}
|
|
186
|
+
const value = data[prop];
|
|
187
|
+
const propDef = shape[prop];
|
|
156
188
|
if (!Object.hasOwnProperty.call(shape, prop)) {
|
|
157
189
|
return value;
|
|
158
190
|
}
|
|
@@ -161,6 +193,10 @@ export function createEntityProxy(id, entityRecord, def, desc) {
|
|
|
161
193
|
return parsed;
|
|
162
194
|
},
|
|
163
195
|
has(target, prop) {
|
|
196
|
+
// Include methods in the "in" check
|
|
197
|
+
if (methods && typeof prop === 'string' && prop in methods) {
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
164
200
|
return prop in shape;
|
|
165
201
|
},
|
|
166
202
|
ownKeys(target) {
|
|
@@ -170,6 +206,14 @@ export function createEntityProxy(id, entityRecord, def, desc) {
|
|
|
170
206
|
if (typenameField && !keys.includes(typenameField)) {
|
|
171
207
|
keys.push(typenameField);
|
|
172
208
|
}
|
|
209
|
+
// Add method keys
|
|
210
|
+
if (methods) {
|
|
211
|
+
for (const methodKey of Object.keys(methods)) {
|
|
212
|
+
if (!keys.includes(methodKey)) {
|
|
213
|
+
keys.push(methodKey);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
173
217
|
return keys;
|
|
174
218
|
},
|
|
175
219
|
getOwnPropertyDescriptor(target, prop) {
|
|
@@ -180,10 +224,17 @@ export function createEntityProxy(id, entityRecord, def, desc) {
|
|
|
180
224
|
configurable: true,
|
|
181
225
|
};
|
|
182
226
|
}
|
|
227
|
+
// Methods are non-enumerable (like regular object methods)
|
|
228
|
+
if (methods && typeof prop === 'string' && prop in methods) {
|
|
229
|
+
return {
|
|
230
|
+
enumerable: false,
|
|
231
|
+
configurable: true,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
183
234
|
return undefined;
|
|
184
235
|
},
|
|
185
236
|
};
|
|
186
|
-
|
|
237
|
+
proxy = new Proxy({
|
|
187
238
|
[CustomNodeInspect]: () => {
|
|
188
239
|
return Object.keys(shape).reduce((acc, key) => {
|
|
189
240
|
acc[key] = proxy[key];
|
|
@@ -192,7 +243,12 @@ export function createEntityProxy(id, entityRecord, def, desc) {
|
|
|
192
243
|
},
|
|
193
244
|
}, handler);
|
|
194
245
|
// Add the proxy to the proxy brand set so we can easily identify it later
|
|
195
|
-
|
|
246
|
+
PROXY_ID.set(proxy, id);
|
|
247
|
+
// Associate the proxy with a scope owner for reactive method caching
|
|
248
|
+
setScopeOwner(proxy, scopeOwner);
|
|
196
249
|
return proxy;
|
|
197
250
|
}
|
|
251
|
+
export function getProxyId(object) {
|
|
252
|
+
return PROXY_ID.get(object);
|
|
253
|
+
}
|
|
198
254
|
//# sourceMappingURL=proxy.js.map
|
package/dist/esm/proxy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/proxy.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/query.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Mask, ObjectFieldTypeDef, UnionDef, QueryFn, InfiniteQueryFn,
|
|
2
|
-
import { QueryCacheOptions, QueryParams, StreamCacheOptions } from './QueryClient.js';
|
|
1
|
+
import { Mask, ObjectFieldTypeDef, UnionDef, QueryFn, InfiniteQueryFn, ExtractTypesFromObjectOrEntity, EntityDef, StreamQueryFn } from './types.js';
|
|
2
|
+
import { QueryCacheOptions, QueryContext, QueryParams, StreamCacheOptions } from './QueryClient.js';
|
|
3
3
|
type IsParameter<Part> = Part extends `[${infer ParamName}]` ? ParamName : never;
|
|
4
4
|
type FilteredParts<Path> = Path extends `${infer PartA}/${infer PartB}` ? IsParameter<PartA> | FilteredParts<PartB> : IsParameter<Path>;
|
|
5
5
|
type ParamValue<Key> = Key extends `...${infer Anything}` ? (string | number)[] : string | number;
|
|
@@ -7,9 +7,16 @@ type RemovePrefixDots<Key> = Key extends `...${infer Name}` ? Name : Key;
|
|
|
7
7
|
type PathParams<Path> = {
|
|
8
8
|
[Key in FilteredParts<Path> as RemovePrefixDots<Key>]: ParamValue<Key>;
|
|
9
9
|
};
|
|
10
|
-
type SearchParamsType = Mask.NUMBER | Mask.STRING | Set<string | boolean | number>;
|
|
10
|
+
type SearchParamsType = Mask.NUMBER | Mask.STRING | Mask.BOOLEAN | Mask.UNDEFINED | Mask.NULL | Set<string | boolean | number>;
|
|
11
11
|
type SearchParamsDefinition = Record<string, SearchParamsType | UnionDef<SearchParamsType[]>>;
|
|
12
|
+
interface StreamOptions<Params extends SearchParamsDefinition, Event extends Record<string, ObjectFieldTypeDef> | ObjectFieldTypeDef> {
|
|
13
|
+
type: Event;
|
|
14
|
+
subscribe: (context: QueryContext, params: ExtractTypesFromObjectOrEntity<Params>, onUpdate: (update: Partial<ExtractTypesFromObjectOrEntity<Event>>) => void) => () => void;
|
|
15
|
+
}
|
|
12
16
|
export declare const queryKeyForFn: (fn: Function, params: unknown) => number;
|
|
17
|
+
interface OptimisticInsertOptions<OptimisticInsertDef extends EntityDef | UnionDef<EntityDef[]>> {
|
|
18
|
+
type: OptimisticInsertDef;
|
|
19
|
+
}
|
|
13
20
|
/**
|
|
14
21
|
* BIG TODO:
|
|
15
22
|
*
|
|
@@ -17,28 +24,39 @@ export declare const queryKeyForFn: (fn: Function, params: unknown) => number;
|
|
|
17
24
|
* out why we're getting so many infinite recursion errors with types first. When
|
|
18
25
|
* we remove them, the types should work without the `any`s.
|
|
19
26
|
*/
|
|
20
|
-
interface RESTQueryDefinition<Path extends string, SearchParams extends
|
|
27
|
+
interface RESTQueryDefinition<Path extends string, SearchParams extends SearchParamsDefinition, ResponseDef extends Record<string, ObjectFieldTypeDef> | ObjectFieldTypeDef, StreamEntityDef extends EntityDef | UnionDef<EntityDef[]> | undefined = undefined, OptimisticInsertDef extends EntityDef | UnionDef<EntityDef[]> | undefined = undefined> {
|
|
21
28
|
path: Path;
|
|
22
29
|
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
23
30
|
searchParams?: SearchParams;
|
|
24
31
|
response: ResponseDef;
|
|
25
32
|
cache?: QueryCacheOptions;
|
|
33
|
+
stream?: StreamEntityDef extends EntityDef | UnionDef<EntityDef[]> ? StreamOptions<SearchParams, StreamEntityDef> : undefined;
|
|
34
|
+
optimisticInserts?: OptimisticInsertDef extends EntityDef | UnionDef<EntityDef[]> ? OptimisticInsertOptions<OptimisticInsertDef> : undefined;
|
|
35
|
+
debounce?: number;
|
|
26
36
|
}
|
|
27
|
-
interface InfiniteRESTQueryDefinition<Path extends string, SearchParams extends
|
|
37
|
+
interface InfiniteRESTQueryDefinition<Path extends string, SearchParams extends SearchParamsDefinition, ResponseDef extends Record<string, ObjectFieldTypeDef> | ObjectFieldTypeDef, StreamEntityDef extends EntityDef | UnionDef<EntityDef[]> | undefined = undefined, OptimisticInsertDef extends EntityDef | UnionDef<EntityDef[]> | undefined = undefined> {
|
|
38
|
+
path: Path;
|
|
39
|
+
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
40
|
+
searchParams?: SearchParams;
|
|
41
|
+
response: ResponseDef;
|
|
42
|
+
cache?: QueryCacheOptions;
|
|
43
|
+
stream?: StreamEntityDef extends EntityDef | UnionDef<EntityDef[]> ? StreamOptions<SearchParams, StreamEntityDef> : undefined;
|
|
44
|
+
optimisticInserts?: OptimisticInsertDef extends EntityDef | UnionDef<EntityDef[]> ? OptimisticInsertOptions<OptimisticInsertDef> : undefined;
|
|
28
45
|
pagination: {
|
|
29
|
-
getNextPageParams?(lastPage:
|
|
46
|
+
getNextPageParams?(lastPage: ExtractTypesFromObjectOrEntity<ResponseDef>, params?: ExtractTypesFromObjectOrEntity<SearchParams> | undefined): QueryParams | undefined;
|
|
30
47
|
};
|
|
48
|
+
debounce?: number;
|
|
31
49
|
}
|
|
32
|
-
type ExtractQueryParams<Path extends string, SearchParams extends SearchParamsDefinition> = PathParams<Path> &
|
|
50
|
+
type ExtractQueryParams<Path extends string, SearchParams extends SearchParamsDefinition> = PathParams<Path> & ExtractTypesFromObjectOrEntity<SearchParams>;
|
|
33
51
|
interface StreamQueryDefinitionBuilder<Params extends SearchParamsDefinition, Response extends Record<string, ObjectFieldTypeDef> | ObjectFieldTypeDef> {
|
|
34
52
|
id: string;
|
|
35
53
|
params?: Params;
|
|
36
54
|
response: Response;
|
|
37
|
-
subscribe: (params:
|
|
55
|
+
subscribe: (params: ExtractTypesFromObjectOrEntity<Params>, onUpdate: (update: Partial<ExtractTypesFromObjectOrEntity<Response>>) => void) => () => void;
|
|
38
56
|
cache?: StreamCacheOptions;
|
|
39
57
|
}
|
|
40
|
-
export declare function query<Path extends string, SearchParams extends SearchParamsDefinition, Response extends Record<string, ObjectFieldTypeDef> | ObjectFieldTypeDef>(queryDefinitionBuilder: () => RESTQueryDefinition<Path, SearchParams, Response>): QueryFn<ExtractQueryParams<Path, SearchParams>, Response>;
|
|
41
|
-
export declare function infiniteQuery<Path extends string, SearchParams extends SearchParamsDefinition, Response extends Record<string, ObjectFieldTypeDef> | ObjectFieldTypeDef>(queryDefinitionBuilder: () => InfiniteRESTQueryDefinition<Path, SearchParams, Response>): InfiniteQueryFn<ExtractQueryParams<Path, SearchParams>, Response>;
|
|
42
|
-
export declare function streamQuery<Path extends '', Params extends SearchParamsDefinition, Response extends
|
|
58
|
+
export declare function query<Path extends string, SearchParams extends SearchParamsDefinition, Response extends Record<string, ObjectFieldTypeDef> | ObjectFieldTypeDef, EventDef extends EntityDef | UnionDef<EntityDef[]> | undefined = undefined, OptimisticUpdateDef extends EntityDef | UnionDef<EntityDef[]> | undefined = undefined>(queryDefinitionBuilder: () => RESTQueryDefinition<Path, SearchParams, Response, EventDef, OptimisticUpdateDef>): QueryFn<ExtractQueryParams<Path, SearchParams>, Response, EventDef, OptimisticUpdateDef>;
|
|
59
|
+
export declare function infiniteQuery<Path extends string, SearchParams extends SearchParamsDefinition, Response extends Record<string, ObjectFieldTypeDef> | ObjectFieldTypeDef, EventDef extends EntityDef | UnionDef<EntityDef[]> | undefined = undefined, OptimisticInsertDef extends EntityDef | UnionDef<EntityDef[]> | undefined = undefined>(queryDefinitionBuilder: () => InfiniteRESTQueryDefinition<Path, SearchParams, Response, EventDef, OptimisticInsertDef>): InfiniteQueryFn<ExtractQueryParams<Path, SearchParams>, Response, EventDef, OptimisticInsertDef>;
|
|
60
|
+
export declare function streamQuery<Path extends '', Params extends SearchParamsDefinition, Response extends EntityDef | UnionDef<EntityDef[]>>(queryDefinitionBuilder: () => StreamQueryDefinitionBuilder<Params, Response>): StreamQueryFn<ExtractQueryParams<Path, Params>, Response>;
|
|
43
61
|
export {};
|
|
44
62
|
//# sourceMappingURL=query.d.ts.map
|
package/dist/esm/query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,IAAI,EACJ,kBAAkB,EAClB,QAAQ,EACR,OAAO,EACP,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/query.js
CHANGED
|
@@ -18,7 +18,7 @@ function buildQueryFn(queryDefinitionBuilder) {
|
|
|
18
18
|
let queryDefinition;
|
|
19
19
|
const getQueryDefinition = () => {
|
|
20
20
|
if (queryDefinition === undefined) {
|
|
21
|
-
const { path, method = 'GET', response, cache, pagination, } = queryDefinitionBuilder();
|
|
21
|
+
const { path, method = 'GET', response, cache, pagination, stream, optimisticInserts, debounce, } = queryDefinitionBuilder();
|
|
22
22
|
const id = `${method}:${path}`;
|
|
23
23
|
let shape;
|
|
24
24
|
let shapeKey;
|
|
@@ -50,6 +50,67 @@ function buildQueryFn(queryDefinitionBuilder) {
|
|
|
50
50
|
});
|
|
51
51
|
return response.json();
|
|
52
52
|
};
|
|
53
|
+
// Process stream configuration if provided
|
|
54
|
+
let streamConfig = undefined;
|
|
55
|
+
if (stream) {
|
|
56
|
+
let streamShape;
|
|
57
|
+
let streamShapeKey;
|
|
58
|
+
const eventDef = stream.type;
|
|
59
|
+
if (typeof eventDef === 'object') {
|
|
60
|
+
if (eventDef instanceof ValidatorDef) {
|
|
61
|
+
streamShape = eventDef;
|
|
62
|
+
streamShapeKey = eventDef.shapeKey;
|
|
63
|
+
}
|
|
64
|
+
else if (eventDef instanceof Set) {
|
|
65
|
+
streamShape = eventDef;
|
|
66
|
+
streamShapeKey = hashValue(eventDef);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
streamShape = t.object(eventDef);
|
|
70
|
+
streamShapeKey = streamShape.shapeKey;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
streamShape = eventDef;
|
|
75
|
+
streamShapeKey = hashValue(streamShape);
|
|
76
|
+
}
|
|
77
|
+
streamConfig = {
|
|
78
|
+
shape: streamShape,
|
|
79
|
+
shapeKey: streamShapeKey,
|
|
80
|
+
subscribeFn: (context, params, onUpdate) => {
|
|
81
|
+
return stream.subscribe(context, params, onUpdate);
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
// Process optimistic inserts configuration if provided
|
|
86
|
+
let optimisticInsertsConfig = undefined;
|
|
87
|
+
if (optimisticInserts) {
|
|
88
|
+
let insertShape;
|
|
89
|
+
let insertShapeKey;
|
|
90
|
+
const insertDef = optimisticInserts.type;
|
|
91
|
+
if (typeof insertDef === 'object') {
|
|
92
|
+
if (insertDef instanceof ValidatorDef) {
|
|
93
|
+
insertShape = insertDef;
|
|
94
|
+
insertShapeKey = insertDef.shapeKey;
|
|
95
|
+
}
|
|
96
|
+
else if (insertDef instanceof Set) {
|
|
97
|
+
insertShape = insertDef;
|
|
98
|
+
insertShapeKey = hashValue(insertDef);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
insertShape = t.object(insertDef);
|
|
102
|
+
insertShapeKey = insertShape.shapeKey;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
insertShape = insertDef;
|
|
107
|
+
insertShapeKey = hashValue(insertShape);
|
|
108
|
+
}
|
|
109
|
+
optimisticInsertsConfig = {
|
|
110
|
+
shape: insertShape,
|
|
111
|
+
shapeKey: insertShapeKey,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
53
114
|
queryDefinition = {
|
|
54
115
|
type: pagination ? "infiniteQuery" /* QueryType.InfiniteQuery */ : "query" /* QueryType.Query */,
|
|
55
116
|
id,
|
|
@@ -58,6 +119,9 @@ function buildQueryFn(queryDefinitionBuilder) {
|
|
|
58
119
|
fetchFn,
|
|
59
120
|
pagination,
|
|
60
121
|
cache,
|
|
122
|
+
stream: streamConfig,
|
|
123
|
+
optimisticInserts: optimisticInsertsConfig,
|
|
124
|
+
debounce,
|
|
61
125
|
};
|
|
62
126
|
}
|
|
63
127
|
return queryDefinition;
|
package/dist/esm/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAajD,OAAO,EAEL,kBAAkB,EAMlB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAajD,OAAO,EAEL,kBAAkB,EAMlB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAU,CAAC,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAiC5C,uEAAuE;AACvE,sEAAsE;AACtE,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkD,CAAC;AAEvF,sEAAsE;AACtE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAY,EAAE,MAAe,EAAU,EAAE;IACrE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,WAAW,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC,CAAC;AA8EF,SAAS,YAAY,CACnB,sBAYK;IAEL,IAAI,eAAgC,CAAC;IAErC,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,EACJ,IAAI,EACJ,MAAM,GAAG,KAAK,EACd,QAAQ,EACR,KAAK,EACL,UAAU,EACV,MAAM,EACN,iBAAiB,EACjB,QAAQ,GACT,GAAG,sBAAsB,EAA0D,CAAC;YAErF,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;YAE/B,IAAI,KAAc,CAAC;YACnB,IAAI,QAAgB,CAAC;YAErB,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,IAAI,QAAQ,YAAY,YAAY,EAAE,CAAC;oBACrC,KAAK,GAAG,QAAmB,CAAC;oBAC5B,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBAC/B,CAAC;qBAAM,IAAI,QAAQ,YAAY,GAAG,EAAE,CAAC;oBACnC,KAAK,GAAG,QAAQ,CAAC;oBACjB,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,QAA8C,CAAC,CAAC;oBACjE,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC5B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,QAAgB,CAAC;gBACzB,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YAED,4DAA4D;YAC5D,MAAM,eAAe,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAErD,MAAM,OAAO,GAAG,KAAK,EAAE,OAAqB,EAAE,MAAmB,EAAE,EAAE;gBACnE,iEAAiE;gBACjE,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBAEpC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;oBACxC,MAAM;iBACP,CAAC,CAAC;gBAEH,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC,CAAC;YAEF,2CAA2C;YAC3C,IAAI,YAAY,GAAQ,SAAS,CAAC;YAClC,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,WAAoB,CAAC;gBACzB,IAAI,cAAsB,CAAC;gBAE3B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;gBAE7B,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACjC,IAAI,QAAQ,YAAY,YAAY,EAAE,CAAC;wBACrC,WAAW,GAAG,QAAmB,CAAC;wBAClC,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC;oBACrC,CAAC;yBAAM,IAAI,QAAQ,YAAY,GAAG,EAAE,CAAC;wBACnC,WAAW,GAAG,QAAQ,CAAC;wBACvB,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACvC,CAAC;yBAAM,CAAC;wBACN,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,QAA8C,CAAC,CAAC;wBACvE,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC;oBACxC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,QAAgB,CAAC;oBAC/B,cAAc,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;gBAC1C,CAAC;gBAED,YAAY,GAAG;oBACb,KAAK,EAAE,WAAW;oBAClB,QAAQ,EAAE,cAAc;oBACxB,WAAW,EAAE,CAAC,OAAqB,EAAE,MAA+B,EAAE,QAAa,EAAE,EAAE;wBACrF,OAAQ,MAAM,CAAC,SAAiB,CAAC,OAAO,EAAE,MAAa,EAAE,QAAQ,CAAC,CAAC;oBACrE,CAAC;iBACF,CAAC;YACJ,CAAC;YAED,uDAAuD;YACvD,IAAI,uBAAuB,GAAQ,SAAS,CAAC;YAC7C,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,WAAoB,CAAC;gBACzB,IAAI,cAAsB,CAAC;gBAE3B,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC;gBAEzC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAClC,IAAI,SAAS,YAAY,YAAY,EAAE,CAAC;wBACtC,WAAW,GAAG,SAAoB,CAAC;wBACnC,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC;oBACtC,CAAC;yBAAM,IAAI,SAAS,YAAY,GAAG,EAAE,CAAC;wBACpC,WAAW,GAAG,SAAS,CAAC;wBACxB,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;oBACxC,CAAC;yBAAM,CAAC;wBACN,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,SAA+C,CAAC,CAAC;wBACxE,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC;oBACxC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,SAAiB,CAAC;oBAChC,cAAc,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;gBAC1C,CAAC;gBAED,uBAAuB,GAAG;oBACxB,KAAK,EAAE,WAAW;oBAClB,QAAQ,EAAE,cAAc;iBACzB,CAAC;YACJ,CAAC;YAED,eAAe,GAAG;gBAChB,IAAI,EAAE,UAAU,CAAC,CAAC,+CAAyB,CAAC,8BAAgB;gBAC5D,EAAE;gBACF,KAAK;gBACL,QAAQ;gBACR,OAAO;gBACP,UAAU;gBACV,KAAK;gBACL,MAAM,EAAE,YAAY;gBACpB,iBAAiB,EAAE,uBAAuB;gBAC1C,QAAQ;aACT,CAAC;QACJ,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,QAAQ,CACtB,CAAC,MAA+B,EAA0C,EAAE;QAC1E,MAAM,WAAW,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAEnD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,WAAW,CAAC,QAAQ,CAAU,kBAAkB,EAAE,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC,CAIK,CAAC;IAET,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAEtD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,KAAK,CAOnB,sBAA8G;IAE9G,OAAO,YAAY,CAAC,sBAA6B,CAAQ,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,aAAa,CAO3B,sBAMC;IAED,OAAO,YAAY,CAAC,sBAA6B,CAAQ,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,WAAW,CAMzB,sBAA4E;IAE5E,IAAI,gBAAiC,CAAC;IAEtC,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC/B,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,sBAAsB,EAAE,CAAC;YAEpE,yCAAyC;YACzC,IAAI,CAAC,CAAC,QAAQ,YAAY,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,yBAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/E,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YAED,gBAAgB,GAAG;gBACjB,IAAI,iCAAkB;gBACtB,EAAE;gBACF,KAAK,EAAE,QAAqB;gBAC5B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,WAAW,EAAE,CAAC,OAAqB,EAAE,MAA+B,EAAE,QAAa,EAAE,EAAE;oBACrF,OAAQ,SAAiB,CAAC,MAAa,EAAE,QAAQ,CAAC,CAAC;gBACrD,CAAC;gBACD,KAAK;aACN,CAAC;QACJ,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,MAA+B,EAA0C,EAAE;QACpG,MAAM,WAAW,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAEnD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,WAAW,CAAC,QAAQ,CAAU,mBAAmB,EAAE,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC,CAAQ,CAAC;IAEV,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAExD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { QueryResult, InfiniteQueryResult, StreamQueryResult } from '../types.js';
|
|
2
2
|
type Narrowable = string | number | boolean | null | undefined | bigint | symbol | {};
|
|
3
|
-
export declare function useQuery<R, Args extends readonly Narrowable[]>(fn: (...args: Args) => QueryResult<R>, ...args: Args): QueryResult<R>;
|
|
4
|
-
export declare function useQuery<R, Args extends readonly Narrowable[]>(fn: (...args: Args) => InfiniteQueryResult<R>, ...args: Args): InfiniteQueryResult<R>;
|
|
3
|
+
export declare function useQuery<R, StreamType, OptimisticUpdateType, Args extends readonly Narrowable[]>(fn: (...args: Args) => QueryResult<R, StreamType, OptimisticUpdateType>, ...args: Args): QueryResult<R, StreamType, OptimisticUpdateType>;
|
|
4
|
+
export declare function useQuery<R, StreamType, OptimisticUpdateType, Args extends readonly Narrowable[]>(fn: (...args: Args) => InfiniteQueryResult<R, StreamType, OptimisticUpdateType>, ...args: Args): InfiniteQueryResult<R, StreamType, OptimisticUpdateType>;
|
|
5
5
|
export declare function useQuery<R, Args extends readonly Narrowable[]>(fn: (...args: Args) => StreamQueryResult<R>, ...args: Args): StreamQueryResult<R>;
|
|
6
6
|
export {};
|
|
7
7
|
//# sourceMappingURL=use-query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-query.d.ts","sourceRoot":"","sources":["../../../src/react/use-query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGlF,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"use-query.d.ts","sourceRoot":"","sources":["../../../src/react/use-query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGlF,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;AAkEtF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,SAAS,SAAS,UAAU,EAAE,EAC9F,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,CAAC,EACvE,GAAG,IAAI,EAAE,IAAI,GACZ,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;AAGpD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,SAAS,SAAS,UAAU,EAAE,EAC9F,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,mBAAmB,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,CAAC,EAC/E,GAAG,IAAI,EAAE,IAAI,GACZ,mBAAmB,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;AAG5D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,SAAS,SAAS,UAAU,EAAE,EAC5D,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,EAC3C,GAAG,IAAI,EAAE,IAAI,GACZ,iBAAiB,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-query.js","sourceRoot":"","sources":["../../../src/react/use-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAMrC,SAAS,SAAS,CAAI,KAAQ;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAiB,CAAC;IAC9C,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,cAAc;QACd,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAiB,CAAC;QACzC,CAAC;QACD,gBAAgB;QAChB,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;YAC5B,OAAO,IAAI,MAAM,CAAC,KAAK,CAAiB,CAAC;QAC3C,CAAC;QACD,aAAa;QACb,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YACzB,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAiB,CAAC;QAC5G,CAAC;QACD,aAAa;QACb,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YACzB,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAiB,CAAC;QACnE,CAAC;QACD,uBAAuB;QACvB,MAAM,MAAM,GAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAE,KAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,MAAW,CAAC;IACrB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,YAAY,GAAG,QAAQ,CAC3B,
|
|
1
|
+
{"version":3,"file":"use-query.js","sourceRoot":"","sources":["../../../src/react/use-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAMrC,SAAS,SAAS,CAAI,KAAQ;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAiB,CAAC;IAC9C,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,cAAc;QACd,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAiB,CAAC;QACzC,CAAC;QACD,gBAAgB;QAChB,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;YAC5B,OAAO,IAAI,MAAM,CAAC,KAAK,CAAiB,CAAC;QAC3C,CAAC;QACD,aAAa;QACb,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YACzB,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAiB,CAAC;QAC5G,CAAC;QACD,aAAa;QACb,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YACzB,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAiB,CAAC;QACnE,CAAC;QACD,uBAAuB;QACvB,MAAM,MAAM,GAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAE,KAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,MAAW,CAAC;IACrB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,YAAY,GAAG,QAAQ,CAC3B,CACE,MAG8B,EAC9B,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAC7B,CAAC;AAEF,MAAM,YAAY,GAAG,QAAQ,CAC3B,CACE,EAEuG,EACvG,GAAG,IAAU,EACuF,EAAE;IACtG,MAAM,WAAW,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAEhC,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE;QAC5B,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,yCAAyC;YACzC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;YAED,oEAAoE;YACpE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CACF,CAAC;AAoBF,iBAAiB;AACjB,MAAM,UAAU,QAAQ,CACtB,EAKwB,EACxB,GAAG,IAAU;IAKb,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,GAAG,IAAI,CAG5B,CAAC;IAEzB,WAAW,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEhC,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CachedQueryExtra } from '../QueryStore.js';
|
|
1
2
|
import { EntityStore } from '../EntityMap.js';
|
|
2
3
|
import { CachedQuery, QueryDefinition, QueryStore } from '../QueryClient.js';
|
|
3
4
|
export interface AsyncPersistentStore {
|
|
@@ -17,6 +18,7 @@ export type StoreMessage = {
|
|
|
17
18
|
value: unknown;
|
|
18
19
|
updatedAt: number;
|
|
19
20
|
refIds?: number[];
|
|
21
|
+
extra?: CachedQueryExtra;
|
|
20
22
|
} | {
|
|
21
23
|
type: 'saveEntity';
|
|
22
24
|
entityKey: number;
|
|
@@ -48,11 +50,11 @@ export declare class AsyncQueryStore implements QueryStore {
|
|
|
48
50
|
private startQueueProcessor;
|
|
49
51
|
private processQueue;
|
|
50
52
|
private processMessage;
|
|
51
|
-
loadQuery(queryDef: QueryDefinition<any, any>, queryKey: number, entityMap: EntityStore): Promise<CachedQuery | undefined>;
|
|
53
|
+
loadQuery(queryDef: QueryDefinition<any, any, any>, queryKey: number, entityMap: EntityStore): Promise<CachedQuery | undefined>;
|
|
52
54
|
private preloadEntities;
|
|
53
|
-
saveQuery(queryDef: QueryDefinition<any, any>, queryKey: number, value: unknown, updatedAt: number, refIds?: Set<number
|
|
55
|
+
saveQuery(queryDef: QueryDefinition<any, any, any>, queryKey: number, value: unknown, updatedAt: number, refIds?: Set<number>, extra?: CachedQueryExtra): void;
|
|
54
56
|
saveEntity(entityKey: number, value: unknown, refIds?: Set<number>): void;
|
|
55
|
-
activateQuery(queryDef: QueryDefinition<any, any>, queryKey: number): void;
|
|
57
|
+
activateQuery(queryDef: QueryDefinition<any, any, any>, queryKey: number): void;
|
|
56
58
|
private writerSaveQuery;
|
|
57
59
|
private writerSaveEntity;
|
|
58
60
|
private writerActivateQuery;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../src/stores/async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../src/stores/async.ts"],"names":[],"mappings":"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"}
|