@signalium/query 1.0.12 → 1.0.14
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 +20 -0
- package/dist/cjs/development/index.js +2985 -0
- package/dist/cjs/development/index.js.map +1 -0
- package/dist/cjs/development/react/index.js +52 -0
- package/dist/cjs/development/react/index.js.map +1 -0
- package/dist/cjs/{stores/shared.js → development/shared-5acOO-tS.js} +11 -14
- package/dist/cjs/development/shared-5acOO-tS.js.map +1 -0
- package/dist/cjs/development/stores/async.js +304 -0
- package/dist/cjs/development/stores/async.js.map +1 -0
- package/dist/cjs/development/stores/sync.js +214 -0
- package/dist/cjs/development/stores/sync.js.map +1 -0
- package/dist/cjs/production/index.js +2985 -0
- package/dist/cjs/production/index.js.map +1 -0
- package/dist/cjs/production/package.json +3 -0
- package/dist/cjs/production/react/index.js +52 -0
- package/dist/cjs/production/react/index.js.map +1 -0
- package/dist/cjs/production/shared-5acOO-tS.js +20 -0
- package/dist/cjs/production/shared-5acOO-tS.js.map +1 -0
- package/dist/cjs/production/stores/async.js +304 -0
- package/dist/cjs/production/stores/async.js.map +1 -0
- package/dist/cjs/production/stores/sync.js +214 -0
- package/dist/cjs/production/stores/sync.js.map +1 -0
- package/dist/esm/EntityMap.d.ts +22 -0
- package/dist/esm/EntityMap.d.ts.map +1 -1
- package/dist/esm/MutationResult.d.ts +43 -0
- package/dist/esm/MutationResult.d.ts.map +1 -0
- package/dist/esm/QueryClient.d.ts +31 -2
- package/dist/esm/QueryClient.d.ts.map +1 -1
- package/dist/esm/development/index.js +2985 -0
- package/dist/esm/development/index.js.map +1 -0
- package/dist/esm/development/react/index.js +52 -0
- package/dist/esm/development/react/index.js.map +1 -0
- package/dist/esm/development/shared-Br5plsKm.js +21 -0
- package/dist/esm/development/shared-Br5plsKm.js.map +1 -0
- package/dist/esm/development/stores/async.js +304 -0
- package/dist/esm/development/stores/async.js.map +1 -0
- package/dist/esm/development/stores/sync.js +214 -0
- package/dist/esm/development/stores/sync.js.map +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/mutation.d.ts +82 -0
- package/dist/esm/mutation.d.ts.map +1 -0
- package/dist/esm/parseEntities.d.ts.map +1 -1
- package/dist/esm/production/index.js +2985 -0
- package/dist/esm/production/index.js.map +1 -0
- package/dist/esm/production/react/index.js +52 -0
- package/dist/esm/production/react/index.js.map +1 -0
- package/dist/esm/production/shared-Br5plsKm.js +21 -0
- package/dist/esm/production/shared-Br5plsKm.js.map +1 -0
- package/dist/esm/production/stores/async.js +304 -0
- package/dist/esm/production/stores/async.js.map +1 -0
- package/dist/esm/production/stores/sync.js +214 -0
- package/dist/esm/production/stores/sync.js.map +1 -0
- package/dist/esm/proxy.d.ts +6 -5
- package/dist/esm/proxy.d.ts.map +1 -1
- package/dist/esm/query.d.ts +3 -1
- package/dist/esm/query.d.ts.map +1 -1
- package/dist/esm/typeDefs.d.ts +5 -3
- package/dist/esm/typeDefs.d.ts.map +1 -1
- package/dist/esm/types.d.ts +72 -5
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils.d.ts +35 -0
- package/dist/esm/utils.d.ts.map +1 -1
- package/package.json +55 -21
- package/stores/async.js +1 -1
- package/stores/sync.js +1 -1
- package/dist/cjs/EntityMap.js +0 -103
- package/dist/cjs/EntityMap.js.map +0 -1
- package/dist/cjs/MemoryEvictionManager.js +0 -56
- package/dist/cjs/MemoryEvictionManager.js.map +0 -1
- package/dist/cjs/NetworkManager.js +0 -125
- package/dist/cjs/NetworkManager.js.map +0 -1
- package/dist/cjs/QueryClient.js +0 -162
- package/dist/cjs/QueryClient.js.map +0 -1
- package/dist/cjs/QueryResult.js +0 -920
- package/dist/cjs/QueryResult.js.map +0 -1
- package/dist/cjs/RefetchManager.js +0 -88
- package/dist/cjs/RefetchManager.js.map +0 -1
- package/dist/cjs/errors.js +0 -129
- package/dist/cjs/errors.js.map +0 -1
- package/dist/cjs/index.js +0 -43
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/parseEntities.js +0 -142
- package/dist/cjs/parseEntities.js.map +0 -1
- package/dist/cjs/pathInterpolator.js +0 -69
- package/dist/cjs/pathInterpolator.js.map +0 -1
- package/dist/cjs/proxy.js +0 -263
- package/dist/cjs/proxy.js.map +0 -1
- package/dist/cjs/query.js +0 -184
- package/dist/cjs/query.js.map +0 -1
- package/dist/cjs/react/index.js +0 -6
- package/dist/cjs/react/index.js.map +0 -1
- package/dist/cjs/react/use-query.js +0 -56
- package/dist/cjs/react/use-query.js.map +0 -1
- package/dist/cjs/stores/async.js +0 -344
- package/dist/cjs/stores/async.js.map +0 -1
- package/dist/cjs/stores/shared.js.map +0 -1
- package/dist/cjs/stores/sync.js +0 -240
- package/dist/cjs/stores/sync.js.map +0 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/cjs/type-utils.js +0 -3
- package/dist/cjs/type-utils.js.map +0 -1
- package/dist/cjs/typeDefs.js +0 -620
- package/dist/cjs/typeDefs.js.map +0 -1
- package/dist/cjs/types.js +0 -33
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/utils.js +0 -23
- package/dist/cjs/utils.js.map +0 -1
- package/dist/esm/EntityMap.js +0 -99
- package/dist/esm/EntityMap.js.map +0 -1
- package/dist/esm/MemoryEvictionManager.js +0 -51
- package/dist/esm/MemoryEvictionManager.js.map +0 -1
- package/dist/esm/NetworkManager.js +0 -120
- package/dist/esm/NetworkManager.js.map +0 -1
- package/dist/esm/QueryClient.js +0 -154
- package/dist/esm/QueryClient.js.map +0 -1
- package/dist/esm/QueryResult.js +0 -916
- package/dist/esm/QueryResult.js.map +0 -1
- package/dist/esm/RefetchManager.js +0 -83
- package/dist/esm/RefetchManager.js.map +0 -1
- package/dist/esm/errors.js +0 -125
- package/dist/esm/errors.js.map +0 -1
- package/dist/esm/index.js +0 -8
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/parseEntities.js +0 -135
- package/dist/esm/parseEntities.js.map +0 -1
- package/dist/esm/pathInterpolator.js +0 -66
- package/dist/esm/pathInterpolator.js.map +0 -1
- package/dist/esm/proxy.js +0 -254
- package/dist/esm/proxy.js.map +0 -1
- package/dist/esm/query.js +0 -177
- package/dist/esm/query.js.map +0 -1
- package/dist/esm/react/index.js +0 -2
- package/dist/esm/react/index.js.map +0 -1
- package/dist/esm/react/use-query.js +0 -53
- package/dist/esm/react/use-query.js.map +0 -1
- package/dist/esm/stores/async.js +0 -340
- package/dist/esm/stores/async.js.map +0 -1
- package/dist/esm/stores/shared.js +0 -13
- package/dist/esm/stores/shared.js.map +0 -1
- package/dist/esm/stores/sync.js +0 -234
- package/dist/esm/stores/sync.js.map +0 -1
- package/dist/esm/type-utils.js +0 -2
- package/dist/esm/type-utils.js.map +0 -1
- package/dist/esm/typeDefs.js +0 -606
- package/dist/esm/typeDefs.js.map +0 -1
- package/dist/esm/types.js +0 -30
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/utils.js +0 -20
- package/dist/esm/utils.js.map +0 -1
- /package/dist/cjs/{package.json → development/package.json} +0 -0
package/dist/cjs/EntityMap.js
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntityStore = void 0;
|
|
4
|
-
const signalium_1 = require("signalium");
|
|
5
|
-
const proxy_js_1 = require("./proxy.js");
|
|
6
|
-
class EntityStore {
|
|
7
|
-
map = new Map();
|
|
8
|
-
queryClient;
|
|
9
|
-
constructor(queryClient) {
|
|
10
|
-
this.queryClient = queryClient;
|
|
11
|
-
}
|
|
12
|
-
hasEntity(key) {
|
|
13
|
-
return this.map.has(key);
|
|
14
|
-
}
|
|
15
|
-
getEntity(key) {
|
|
16
|
-
return this.map.get(key);
|
|
17
|
-
}
|
|
18
|
-
getNestedEntityRefIds(key, refIds) {
|
|
19
|
-
const record = this.getEntity(key);
|
|
20
|
-
if (record === undefined) {
|
|
21
|
-
throw new Error(`Entity ${key} not found when getting nested entity ref ids`);
|
|
22
|
-
}
|
|
23
|
-
refIds.add(key);
|
|
24
|
-
// Entangle the signal value. Whenever the signal value is updated, refIds
|
|
25
|
-
// will also be updated, so no need for a second signal.
|
|
26
|
-
record.notifier.consume();
|
|
27
|
-
if (record.entityRefs !== undefined) {
|
|
28
|
-
for (const ref of record.entityRefs) {
|
|
29
|
-
this.getNestedEntityRefIds(ref, refIds);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return refIds;
|
|
33
|
-
}
|
|
34
|
-
hydratePreloadedEntity(key, shape) {
|
|
35
|
-
const record = this.getEntity(key);
|
|
36
|
-
if (record === undefined) {
|
|
37
|
-
throw new Error(`Entity ${key} not found`);
|
|
38
|
-
}
|
|
39
|
-
record.proxy = this.createEntityProxy(record, shape);
|
|
40
|
-
return record;
|
|
41
|
-
}
|
|
42
|
-
setPreloadedEntity(key, data) {
|
|
43
|
-
const record = {
|
|
44
|
-
key,
|
|
45
|
-
data,
|
|
46
|
-
notifier: (0, signalium_1.notifier)(),
|
|
47
|
-
cache: new Map(),
|
|
48
|
-
id: undefined,
|
|
49
|
-
proxy: undefined,
|
|
50
|
-
entityRefs: undefined,
|
|
51
|
-
};
|
|
52
|
-
this.map.set(key, record);
|
|
53
|
-
return record;
|
|
54
|
-
}
|
|
55
|
-
setEntity(key, obj, shape, entityRefs) {
|
|
56
|
-
let record = this.map.get(key);
|
|
57
|
-
if (record === undefined) {
|
|
58
|
-
record = this.setPreloadedEntity(key, obj);
|
|
59
|
-
record.proxy = this.createEntityProxy(record, shape);
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
record.data = (0, proxy_js_1.mergeValues)(record.data, obj);
|
|
63
|
-
record.notifier.notify();
|
|
64
|
-
record.cache.clear();
|
|
65
|
-
}
|
|
66
|
-
record.entityRefs = entityRefs;
|
|
67
|
-
return record;
|
|
68
|
-
}
|
|
69
|
-
createEntityProxy(record, shape) {
|
|
70
|
-
const idField = shape.idField;
|
|
71
|
-
if (idField === undefined) {
|
|
72
|
-
throw new Error(`Entity id field is required ${shape.typenameValue}`);
|
|
73
|
-
}
|
|
74
|
-
const id = record.data[idField];
|
|
75
|
-
if (typeof id !== 'string' && typeof id !== 'number') {
|
|
76
|
-
console.log(record.data);
|
|
77
|
-
throw new Error(`Entity id must be string or number: ${shape.typenameValue}`);
|
|
78
|
-
}
|
|
79
|
-
record.id = id;
|
|
80
|
-
let entityRelay;
|
|
81
|
-
const entityConfig = shape._entityConfig;
|
|
82
|
-
if (entityConfig?.stream) {
|
|
83
|
-
entityRelay = (0, signalium_1.relay)(state => {
|
|
84
|
-
const context = this.queryClient.getContext();
|
|
85
|
-
const onUpdate = (update) => {
|
|
86
|
-
const currentValue = record.data;
|
|
87
|
-
const merged = (0, proxy_js_1.mergeValues)(currentValue, update);
|
|
88
|
-
record.data = merged;
|
|
89
|
-
record.notifier.notify();
|
|
90
|
-
record.cache.clear();
|
|
91
|
-
};
|
|
92
|
-
const unsubscribe = entityConfig.stream.subscribe(context, id, onUpdate);
|
|
93
|
-
// Set initial value to the proxy - this resolves the relay promise
|
|
94
|
-
// Proxy should always exist at this point since it's created before relay access
|
|
95
|
-
state.value = record.proxy;
|
|
96
|
-
return unsubscribe;
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
return (0, proxy_js_1.createEntityProxy)(record.key, record, shape, entityRelay, this.queryClient);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
exports.EntityStore = EntityStore;
|
|
103
|
-
//# sourceMappingURL=EntityMap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EntityMap.js","sourceRoot":"","sources":["../../src/EntityMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NoOpMemoryEvictionManager = exports.MemoryEvictionManager = void 0;
|
|
4
|
-
const EVICTION_INTERVAL = 60 * 1000; // 1 minute
|
|
5
|
-
// Memory eviction manager - uses a single interval with rotating sets to avoid timeout overhead
|
|
6
|
-
class MemoryEvictionManager {
|
|
7
|
-
queryClient;
|
|
8
|
-
multiplier;
|
|
9
|
-
intervalId;
|
|
10
|
-
currentFlush = new Set(); // Queries to evict on next tick
|
|
11
|
-
nextFlush = new Set(); // Queries to evict on tick after next
|
|
12
|
-
constructor(queryClient, multiplier = 1) {
|
|
13
|
-
this.queryClient = queryClient;
|
|
14
|
-
this.multiplier = multiplier;
|
|
15
|
-
this.intervalId = setInterval(this.tick, EVICTION_INTERVAL * this.multiplier);
|
|
16
|
-
}
|
|
17
|
-
scheduleEviction(queryKey) {
|
|
18
|
-
// Add to nextFlush so it waits at least one full interval
|
|
19
|
-
// This prevents immediate eviction if scheduled right before a tick
|
|
20
|
-
this.nextFlush.add(queryKey);
|
|
21
|
-
}
|
|
22
|
-
cancelEviction(queryKey) {
|
|
23
|
-
// Remove from both sets to handle reactivation
|
|
24
|
-
this.currentFlush.delete(queryKey);
|
|
25
|
-
this.nextFlush.delete(queryKey);
|
|
26
|
-
}
|
|
27
|
-
tick = () => {
|
|
28
|
-
if (!this.queryClient)
|
|
29
|
-
return;
|
|
30
|
-
// Evict all queries in currentFlush
|
|
31
|
-
for (const queryKey of this.currentFlush) {
|
|
32
|
-
this.queryClient.queryInstances.delete(queryKey);
|
|
33
|
-
}
|
|
34
|
-
// Rotate: currentFlush becomes nextFlush, nextFlush becomes empty
|
|
35
|
-
this.currentFlush = this.nextFlush;
|
|
36
|
-
this.nextFlush = new Set();
|
|
37
|
-
};
|
|
38
|
-
destroy() {
|
|
39
|
-
clearInterval(this.intervalId);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
exports.MemoryEvictionManager = MemoryEvictionManager;
|
|
43
|
-
// No-op implementation for SSR environments where timers are not needed
|
|
44
|
-
class NoOpMemoryEvictionManager {
|
|
45
|
-
scheduleEviction(_queryKey) {
|
|
46
|
-
// No-op: do nothing
|
|
47
|
-
}
|
|
48
|
-
cancelEviction(_queryKey) {
|
|
49
|
-
// No-op: do nothing
|
|
50
|
-
}
|
|
51
|
-
destroy() {
|
|
52
|
-
// No-op: do nothing
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
exports.NoOpMemoryEvictionManager = NoOpMemoryEvictionManager;
|
|
56
|
-
//# sourceMappingURL=MemoryEvictionManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryEvictionManager.js","sourceRoot":"","sources":["../../src/MemoryEvictionManager.ts"],"names":[],"mappings":";;;AAEA,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;AAEhD,gGAAgG;AAChG,MAAa,qBAAqB;IAMtB;IACA;IANF,UAAU,CAAiB;IAC3B,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC,CAAC,gCAAgC;IAClE,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC,CAAC,sCAAsC;IAE7E,YACU,WAAwB,EACxB,aAAqB,CAAC;QADtB,gBAAW,GAAX,WAAW,CAAa;QACxB,eAAU,GAAV,UAAU,CAAY;QAE9B,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAChF,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,0DAA0D;QAC1D,oEAAoE;QACpE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,QAAgB;QAC7B,+CAA+C;QAC/C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEO,IAAI,GAAG,GAAG,EAAE;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAE9B,oCAAoC;QACpC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;QAED,kEAAkE;QAClE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO;QACL,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;CACF;AAxCD,sDAwCC;AAED,wEAAwE;AACxE,MAAa,yBAAyB;IACpC,gBAAgB,CAAC,SAAiB;QAChC,oBAAoB;IACtB,CAAC;IAED,cAAc,CAAC,SAAiB;QAC9B,oBAAoB;IACtB,CAAC;IAED,OAAO;QACL,oBAAoB;IACtB,CAAC;CACF;AAZD,8DAYC"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* NetworkManager - Tracks network connectivity status
|
|
4
|
-
*
|
|
5
|
-
* Features:
|
|
6
|
-
* - Signal-based reactivity for online/offline status
|
|
7
|
-
* - Automatic detection using navigator.onLine and events
|
|
8
|
-
* - Manual override capability for testing and custom scenarios
|
|
9
|
-
* - Platform-agnostic (works in browser and React Native)
|
|
10
|
-
*/
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.NetworkManagerContext = exports.defaultNetworkManager = exports.NoOpNetworkManager = exports.NetworkManager = void 0;
|
|
13
|
-
const signalium_1 = require("signalium");
|
|
14
|
-
class NetworkManager {
|
|
15
|
-
onlineSignal;
|
|
16
|
-
manualOverride = undefined;
|
|
17
|
-
eventListenersAttached = false;
|
|
18
|
-
constructor(initialStatus) {
|
|
19
|
-
// Initialize with manual status if provided, otherwise detect from environment
|
|
20
|
-
const initialOnlineStatus = initialStatus ?? this.detectOnlineStatus();
|
|
21
|
-
this.onlineSignal = (0, signalium_1.signal)(initialOnlineStatus);
|
|
22
|
-
// Automatically attach event listeners if in browser/React Native environment
|
|
23
|
-
if (this.canAttachListeners()) {
|
|
24
|
-
this.attachEventListeners();
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Returns true if the network is currently online
|
|
29
|
-
*/
|
|
30
|
-
get isOnline() {
|
|
31
|
-
// Manual override takes precedence
|
|
32
|
-
if (this.manualOverride !== undefined) {
|
|
33
|
-
return this.manualOverride;
|
|
34
|
-
}
|
|
35
|
-
return this.onlineSignal.value;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Manually set the network status (useful for testing)
|
|
39
|
-
*/
|
|
40
|
-
setNetworkStatus(online) {
|
|
41
|
-
this.manualOverride = online;
|
|
42
|
-
this.onlineSignal.value = online;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Clear manual override and return to automatic detection
|
|
46
|
-
*/
|
|
47
|
-
clearManualOverride() {
|
|
48
|
-
this.manualOverride = undefined;
|
|
49
|
-
this.onlineSignal.value = this.detectOnlineStatus();
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Get the reactive signal for online status
|
|
53
|
-
* This allows reactive functions to depend on network status
|
|
54
|
-
*/
|
|
55
|
-
getOnlineSignal() {
|
|
56
|
-
return this.onlineSignal;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Detect current online status from the environment
|
|
60
|
-
*/
|
|
61
|
-
detectOnlineStatus() {
|
|
62
|
-
// Check if we're in a browser or React Native environment
|
|
63
|
-
if (typeof navigator !== 'undefined' && 'onLine' in navigator) {
|
|
64
|
-
return navigator.onLine;
|
|
65
|
-
}
|
|
66
|
-
// Default to online if we can't detect (e.g., Node.js/SSR)
|
|
67
|
-
return true;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Check if we can attach event listeners (browser or React Native)
|
|
71
|
-
*/
|
|
72
|
-
canAttachListeners() {
|
|
73
|
-
return typeof window !== 'undefined' && typeof window.addEventListener === 'function';
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Attach event listeners for online/offline events
|
|
77
|
-
*/
|
|
78
|
-
attachEventListeners() {
|
|
79
|
-
if (this.eventListenersAttached) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
const handleOnline = () => {
|
|
83
|
-
if (this.manualOverride === undefined) {
|
|
84
|
-
this.onlineSignal.value = true;
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
const handleOffline = () => {
|
|
88
|
-
if (this.manualOverride === undefined) {
|
|
89
|
-
this.onlineSignal.value = false;
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
window.addEventListener('online', handleOnline);
|
|
93
|
-
window.addEventListener('offline', handleOffline);
|
|
94
|
-
this.eventListenersAttached = true;
|
|
95
|
-
// Note: In a real production app, you might want to provide a cleanup method
|
|
96
|
-
// to remove these listeners, but for a singleton that lives for the app lifetime,
|
|
97
|
-
// it's not critical
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
exports.NetworkManager = NetworkManager;
|
|
101
|
-
// No-op implementation for SSR environments where network status tracking is not needed
|
|
102
|
-
class NoOpNetworkManager {
|
|
103
|
-
static onlineSignal = (0, signalium_1.signal)(true);
|
|
104
|
-
get isOnline() {
|
|
105
|
-
return true;
|
|
106
|
-
}
|
|
107
|
-
setNetworkStatus(_online) {
|
|
108
|
-
// No-op: do nothing
|
|
109
|
-
}
|
|
110
|
-
clearManualOverride() {
|
|
111
|
-
// No-op: do nothing
|
|
112
|
-
}
|
|
113
|
-
getOnlineSignal() {
|
|
114
|
-
return NoOpNetworkManager.onlineSignal;
|
|
115
|
-
}
|
|
116
|
-
destroy() {
|
|
117
|
-
// No-op: do nothing
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
exports.NoOpNetworkManager = NoOpNetworkManager;
|
|
121
|
-
// Default singleton instance for convenience
|
|
122
|
-
exports.defaultNetworkManager = new NetworkManager();
|
|
123
|
-
// Context for dependency injection
|
|
124
|
-
exports.NetworkManagerContext = (0, signalium_1.context)(exports.defaultNetworkManager);
|
|
125
|
-
//# sourceMappingURL=NetworkManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkManager.js","sourceRoot":"","sources":["../../src/NetworkManager.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/QueryClient.js
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Query Client with Entity Caching and Deduplication
|
|
4
|
-
*
|
|
5
|
-
* Features:
|
|
6
|
-
* - Global entity map for deduplication
|
|
7
|
-
* - Entity definitions with cached sub-entity paths
|
|
8
|
-
* - Eager entity discovery and caching
|
|
9
|
-
* - Permanent proxy cache for entities
|
|
10
|
-
* - Response caching for offline access
|
|
11
|
-
* - Signalium-based reactivity for entity updates
|
|
12
|
-
* - Self-contained validator (no external dependencies except Signalium)
|
|
13
|
-
*/
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.QueryClientContext = exports.QueryClient = exports.queryKeyFor = void 0;
|
|
16
|
-
exports.extractParamsForKey = extractParamsForKey;
|
|
17
|
-
exports.addOptimisticInsert = addOptimisticInsert;
|
|
18
|
-
exports.removeOptimisticInsert = removeOptimisticInsert;
|
|
19
|
-
const signalium_1 = require("signalium");
|
|
20
|
-
const utils_1 = require("signalium/utils");
|
|
21
|
-
const EntityMap_js_1 = require("./EntityMap.js");
|
|
22
|
-
const NetworkManager_js_1 = require("./NetworkManager.js");
|
|
23
|
-
const QueryResult_js_1 = require("./QueryResult.js");
|
|
24
|
-
const RefetchManager_js_1 = require("./RefetchManager.js");
|
|
25
|
-
const MemoryEvictionManager_js_1 = require("./MemoryEvictionManager.js");
|
|
26
|
-
/**
|
|
27
|
-
* Checks if a value is a Signal instance
|
|
28
|
-
*/
|
|
29
|
-
function isSignal(value) {
|
|
30
|
-
return typeof value === 'object' && value !== null;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Extracts actual values from params that may contain Signals.
|
|
34
|
-
*/
|
|
35
|
-
function extractParamsForKey(params) {
|
|
36
|
-
if (params === undefined) {
|
|
37
|
-
return undefined;
|
|
38
|
-
}
|
|
39
|
-
const extracted = {};
|
|
40
|
-
for (const [key, value] of Object.entries(params)) {
|
|
41
|
-
if (isSignal(value)) {
|
|
42
|
-
extracted[key] = value.value;
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
extracted[key] = value;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return extracted;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Computes the query key for instance lookup. This is used for two different keys:
|
|
52
|
-
*
|
|
53
|
-
* - Query instance key
|
|
54
|
-
* - Query storage key
|
|
55
|
-
*
|
|
56
|
-
* Instance keys are created by passing in the query definition and parameters WITHOUT
|
|
57
|
-
* extracting the Signal values, whereas storage keys are created by extracting the Signal values.
|
|
58
|
-
* This way, we can reuse the same instance for given Signals, but different underlying values
|
|
59
|
-
* will be stored and put into the LRU cache separately.
|
|
60
|
-
*/
|
|
61
|
-
const queryKeyFor = (queryDef, params) => {
|
|
62
|
-
return (0, utils_1.hashValue)([queryDef.id, queryDef.shapeKey, params]);
|
|
63
|
-
};
|
|
64
|
-
exports.queryKeyFor = queryKeyFor;
|
|
65
|
-
class QueryClient {
|
|
66
|
-
store;
|
|
67
|
-
context;
|
|
68
|
-
entityMap;
|
|
69
|
-
queryInstances = new Map();
|
|
70
|
-
memoryEvictionManager;
|
|
71
|
-
refetchManager;
|
|
72
|
-
networkManager;
|
|
73
|
-
isServer;
|
|
74
|
-
constructor(store, context = { fetch, log: console }, networkManager, memoryEvictionManager, refetchManager) {
|
|
75
|
-
this.store = store;
|
|
76
|
-
this.context = context;
|
|
77
|
-
this.memoryEvictionManager =
|
|
78
|
-
memoryEvictionManager ?? new MemoryEvictionManager_js_1.MemoryEvictionManager(this, this.context.evictionMultiplier);
|
|
79
|
-
this.refetchManager = refetchManager ?? new RefetchManager_js_1.RefetchManager(this.context.refetchMultiplier);
|
|
80
|
-
this.networkManager = networkManager ?? new NetworkManager_js_1.NetworkManager();
|
|
81
|
-
this.isServer = typeof window === 'undefined';
|
|
82
|
-
this.entityMap = new EntityMap_js_1.EntityStore(this);
|
|
83
|
-
}
|
|
84
|
-
getContext() {
|
|
85
|
-
return this.context;
|
|
86
|
-
}
|
|
87
|
-
saveQueryData(queryDef, queryKey, data, updatedAt, entityRefs, extra) {
|
|
88
|
-
// Clone entityRefs to avoid mutation in setValue
|
|
89
|
-
const clonedRefs = entityRefs !== undefined ? new Set(entityRefs) : undefined;
|
|
90
|
-
// QueryStore expects the base definition structure
|
|
91
|
-
this.store.saveQuery(queryDef, queryKey, data, updatedAt, clonedRefs, extra);
|
|
92
|
-
}
|
|
93
|
-
activateQuery(queryInstance) {
|
|
94
|
-
const { def, queryKey, storageKey } = queryInstance;
|
|
95
|
-
// Use storageKey for cache operations (store.activateQuery)
|
|
96
|
-
this.store.activateQuery(def, storageKey);
|
|
97
|
-
// Only add to refetch manager if it's not a stream
|
|
98
|
-
if (def.type !== "stream" /* QueryType.Stream */ && def.cache?.refetchInterval) {
|
|
99
|
-
this.refetchManager.addQuery(queryInstance);
|
|
100
|
-
}
|
|
101
|
-
// Use queryKey for instance eviction (memoryEvictionManager)
|
|
102
|
-
this.memoryEvictionManager.cancelEviction(queryKey);
|
|
103
|
-
}
|
|
104
|
-
loadCachedQuery(queryDef, queryKey) {
|
|
105
|
-
return this.store.loadQuery(queryDef, queryKey, this.entityMap);
|
|
106
|
-
}
|
|
107
|
-
deleteCachedQuery(queryKey) {
|
|
108
|
-
this.store.deleteQuery(queryKey);
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Loads a query from the document store and returns a QueryResult
|
|
112
|
-
* that triggers fetches and prepopulates with cached data
|
|
113
|
-
*/
|
|
114
|
-
getQuery(queryDef, params) {
|
|
115
|
-
const queryKey = (0, exports.queryKeyFor)(queryDef, params);
|
|
116
|
-
let queryInstance = this.queryInstances.get(queryKey);
|
|
117
|
-
// Create a new instance if it doesn't exist
|
|
118
|
-
if (queryInstance === undefined) {
|
|
119
|
-
queryInstance = new QueryResult_js_1.QueryResultImpl(queryDef, this, queryKey, params);
|
|
120
|
-
// Store for future use
|
|
121
|
-
this.queryInstances.set(queryKey, queryInstance);
|
|
122
|
-
}
|
|
123
|
-
return queryInstance;
|
|
124
|
-
}
|
|
125
|
-
hydrateEntity(key, shape) {
|
|
126
|
-
return this.entityMap.hydratePreloadedEntity(key, shape);
|
|
127
|
-
}
|
|
128
|
-
saveEntity(key, obj, shape, entityRefs) {
|
|
129
|
-
// console.log('saveEntity', key, JSON.stringify(obj, null, 2), shape, entityRefs, new Error().stack);
|
|
130
|
-
const record = this.entityMap.setEntity(key, obj, shape, entityRefs);
|
|
131
|
-
// console.log('saveEntity record', JSON.stringify(obj, null, 2), new Error().stack);
|
|
132
|
-
this.store.saveEntity(key, obj, entityRefs);
|
|
133
|
-
return record;
|
|
134
|
-
}
|
|
135
|
-
getNestedEntityRefIds(key, refIds) {
|
|
136
|
-
return this.entityMap.getNestedEntityRefIds(key, refIds);
|
|
137
|
-
}
|
|
138
|
-
destroy() {
|
|
139
|
-
this.refetchManager.destroy();
|
|
140
|
-
this.memoryEvictionManager.destroy();
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
exports.QueryClient = QueryClient;
|
|
144
|
-
exports.QueryClientContext = (0, signalium_1.context)(undefined);
|
|
145
|
-
/**
|
|
146
|
-
* Add an optimistic insert to a query result.
|
|
147
|
-
* The insert will be automatically removed when:
|
|
148
|
-
* - The entity appears in a refetched response
|
|
149
|
-
* - The entity appears as a stream orphan
|
|
150
|
-
* - refetch() is called
|
|
151
|
-
*/
|
|
152
|
-
function addOptimisticInsert(query, insert) {
|
|
153
|
-
query.addOptimisticInsert(insert);
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Remove an optimistic insert from a query result.
|
|
157
|
-
* This is a no-op if the insert has already been removed.
|
|
158
|
-
*/
|
|
159
|
-
function removeOptimisticInsert(query, insert) {
|
|
160
|
-
query.removeOptimisticInsert(insert);
|
|
161
|
-
}
|
|
162
|
-
//# sourceMappingURL=QueryClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryClient.js","sourceRoot":"","sources":["../../src/QueryClient.ts"],"names":[],"mappings":"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"}
|