@livestore/livestore 0.0.21 → 0.0.23

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.
Files changed (78) hide show
  1. package/README.md +14 -4
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/__tests__/react/fixture.d.ts.map +1 -1
  4. package/dist/__tests__/react/fixture.js +0 -2
  5. package/dist/__tests__/react/fixture.js.map +1 -1
  6. package/dist/__tests__/react/useQuery.test.js +1 -1
  7. package/dist/__tests__/react/useQuery.test.js.map +1 -1
  8. package/dist/__tests__/react/utils/stack-info.test.d.ts +2 -0
  9. package/dist/__tests__/react/utils/stack-info.test.d.ts.map +1 -0
  10. package/dist/__tests__/react/utils/stack-info.test.js +43 -0
  11. package/dist/__tests__/react/utils/stack-info.test.js.map +1 -0
  12. package/dist/__tests__/reactive.test.js +13 -1
  13. package/dist/__tests__/reactive.test.js.map +1 -1
  14. package/dist/__tests__/reactiveQueries/sql.test.js +3 -3
  15. package/dist/__tests__/reactiveQueries/sql.test.js.map +1 -1
  16. package/dist/inMemoryDatabase.d.ts +2 -1
  17. package/dist/inMemoryDatabase.d.ts.map +1 -1
  18. package/dist/inMemoryDatabase.js +3 -2
  19. package/dist/inMemoryDatabase.js.map +1 -1
  20. package/dist/react/index.d.ts +1 -0
  21. package/dist/react/index.d.ts.map +1 -1
  22. package/dist/react/index.js +1 -0
  23. package/dist/react/index.js.map +1 -1
  24. package/dist/react/useComponentState.d.ts.map +1 -1
  25. package/dist/react/useComponentState.js +19 -27
  26. package/dist/react/useComponentState.js.map +1 -1
  27. package/dist/react/useQuery.d.ts.map +1 -1
  28. package/dist/react/useQuery.js +46 -26
  29. package/dist/react/useQuery.js.map +1 -1
  30. package/dist/react/useTemporaryQuery.d.ts.map +1 -1
  31. package/dist/react/useTemporaryQuery.js +2 -0
  32. package/dist/react/useTemporaryQuery.js.map +1 -1
  33. package/dist/react/utils/stack-info.d.ts +11 -0
  34. package/dist/react/utils/stack-info.d.ts.map +1 -0
  35. package/dist/react/utils/stack-info.js +49 -0
  36. package/dist/react/utils/stack-info.js.map +1 -0
  37. package/dist/reactive.d.ts +33 -43
  38. package/dist/reactive.d.ts.map +1 -1
  39. package/dist/reactive.js +66 -255
  40. package/dist/reactive.js.map +1 -1
  41. package/dist/reactiveQueries/base-class.d.ts +15 -13
  42. package/dist/reactiveQueries/base-class.d.ts.map +1 -1
  43. package/dist/reactiveQueries/base-class.js +5 -8
  44. package/dist/reactiveQueries/base-class.js.map +1 -1
  45. package/dist/reactiveQueries/graphql.d.ts +4 -3
  46. package/dist/reactiveQueries/graphql.d.ts.map +1 -1
  47. package/dist/reactiveQueries/graphql.js +29 -34
  48. package/dist/reactiveQueries/graphql.js.map +1 -1
  49. package/dist/reactiveQueries/js.d.ts +2 -1
  50. package/dist/reactiveQueries/js.d.ts.map +1 -1
  51. package/dist/reactiveQueries/js.js +8 -9
  52. package/dist/reactiveQueries/js.js.map +1 -1
  53. package/dist/reactiveQueries/sql.d.ts +11 -5
  54. package/dist/reactiveQueries/sql.d.ts.map +1 -1
  55. package/dist/reactiveQueries/sql.js +31 -34
  56. package/dist/reactiveQueries/sql.js.map +1 -1
  57. package/dist/store.d.ts +26 -12
  58. package/dist/store.d.ts.map +1 -1
  59. package/dist/store.js +41 -255
  60. package/dist/store.js.map +1 -1
  61. package/package.json +3 -3
  62. package/src/__tests__/react/fixture.tsx +0 -3
  63. package/src/__tests__/react/useQuery.test.tsx +1 -1
  64. package/src/__tests__/react/utils/{extractStackInfoFromStackTrace.test.ts → stack-info.test.ts} +25 -20
  65. package/src/__tests__/reactive.test.ts +20 -1
  66. package/src/__tests__/reactiveQueries/sql.test.ts +3 -3
  67. package/src/inMemoryDatabase.ts +9 -6
  68. package/src/react/index.ts +1 -0
  69. package/src/react/useComponentState.ts +25 -30
  70. package/src/react/useQuery.ts +66 -34
  71. package/src/react/useTemporaryQuery.ts +2 -0
  72. package/src/react/utils/{extractStackInfoFromStackTrace.ts → stack-info.ts} +21 -5
  73. package/src/reactive.ts +148 -339
  74. package/src/reactiveQueries/base-class.ts +23 -22
  75. package/src/reactiveQueries/graphql.ts +34 -36
  76. package/src/reactiveQueries/js.ts +14 -10
  77. package/src/reactiveQueries/sql.ts +55 -48
  78. package/src/store.ts +70 -305
package/dist/reactive.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // This is a simple implementation of a reactive dependency graph.
2
- import { pick, shouldNeverHappen } from '@livestore/utils';
3
- import { isEqual, max, uniqueId } from 'lodash-es';
2
+ import { pick } from '@livestore/utils';
3
+ import { isEqual, uniqueId } from 'lodash-es';
4
4
  import { BoundArray } from './bounded-collections.js';
5
5
  // import { getDurationMsFromSpan } from './otel.js'
6
6
  export const NOT_REFRESHED_YET = Symbol.for('NOT_REFRESHED_YET');
@@ -11,7 +11,7 @@ export const unknownRefreshReason = () => {
11
11
  const uniqueNodeId = () => uniqueId('node-');
12
12
  const uniqueRefreshInfoId = () => uniqueId('refresh-info-');
13
13
  const serializeAtom = (atom) => ({
14
- ...pick(atom, ['_tag', 'height', 'id', 'label', 'meta']),
14
+ ...pick(atom, ['_tag', 'id', 'label', 'meta']),
15
15
  sub: Array.from(atom.sub).map((a) => a.id),
16
16
  super: Array.from(atom.super).map((a) => a.id),
17
17
  });
@@ -20,6 +20,27 @@ export class ReactiveGraph {
20
20
  constructor(options) {
21
21
  this.atoms = new Set();
22
22
  this.debugRefreshInfos = new BoundArray(5000);
23
+ this.runEffects = (effectsToRefresh, options) => {
24
+ this.effectsWrapper(() => {
25
+ this.currentDebugRefresh = { refreshedAtoms: [], startMs: performance.now() };
26
+ for (const effect of effectsToRefresh) {
27
+ effect.doEffect(options?.otelContext);
28
+ }
29
+ const refreshedAtoms = this.currentDebugRefresh.refreshedAtoms;
30
+ const durationMs = performance.now() - this.currentDebugRefresh.startMs;
31
+ this.currentDebugRefresh = undefined;
32
+ const refreshDebugInfo = {
33
+ id: uniqueRefreshInfoId(),
34
+ reason: options?.debugRefreshReason ?? unknownRefreshReason(),
35
+ skippedRefresh: false,
36
+ refreshedAtoms,
37
+ durationMs,
38
+ completedTimestamp: Date.now(),
39
+ graphSnapshot: this.getSnapshot(),
40
+ };
41
+ this.debugRefreshInfos.push(refreshDebugInfo);
42
+ });
43
+ };
23
44
  this.getSnapshot = () => ({
24
45
  atoms: Array.from(this.atoms).map(serializeAtom),
25
46
  // effects: Array.from(this.effects).map(serializeEffect),
@@ -33,7 +54,6 @@ export class ReactiveGraph {
33
54
  id: uniqueNodeId(),
34
55
  isDirty: false,
35
56
  previousResult: val,
36
- height: 0,
37
57
  computeResult: () => ref.previousResult,
38
58
  sub: new Set(),
39
59
  super: new Set(),
@@ -44,53 +64,54 @@ export class ReactiveGraph {
44
64
  this.atoms.add(ref);
45
65
  return ref;
46
66
  }
47
- makeThunk(getResult_, options) {
48
- // const computeResult = (): T => {
49
- // const getAtom = (atom: Atom<T, any>): T => {
50
- // const __getResult = atom._tag === 'thunk' ? atom.__getResult.toString() : ''
51
- // if (atom.isDirty) {
52
- // console.log('atom is dirty', atom.id, atom.label ?? '', atom._tag, __getResult)
53
- // const result = atom.computeResult()
54
- // atom.isDirty = false
55
- // atom.previousResult = result
56
- // return result
57
- // } else {
58
- // console.log('atom is clean', atom.id, atom.label ?? '', atom._tag, __getResult)
59
- // return atom.previousResult as T
60
- // }
61
- // }
62
- // let resultChanged = false
63
- // const debugInfoForAtom = {
64
- // atom: serializeAtom(null as TODO),
65
- // resultChanged,
66
- // // debugInfo: unknownRefreshReason() as TDebugThunkInfo,
67
- // debugInfo: { _tag: 'unknown' } as TDebugThunkInfo,
68
- // durationMs: 0,
69
- // } satisfies AtomDebugInfo<TDebugThunkInfo>
70
- const addDebugInfo = (_debugInfo) => {
71
- // debugInfoForAtom.debugInfo = debugInfo
72
- };
73
- // debugInfoForRefreshedAtoms.push(debugInfoForAtom)
74
- // return getResult_(getAtom as GetAtom, addDebugInfo, this.context!)
75
- // }
67
+ makeThunk(getResult, options) {
76
68
  const thunk = {
77
69
  _tag: 'thunk',
78
70
  id: uniqueNodeId(),
79
71
  previousResult: NOT_REFRESHED_YET,
80
72
  isDirty: true,
81
- height: 0,
82
- computeResult: (otelContext) => {
73
+ computeResult: (otelContext, debugRefreshReason) => {
83
74
  if (thunk.isDirty) {
75
+ const neededCurrentRefresh = this.currentDebugRefresh === undefined;
76
+ if (neededCurrentRefresh) {
77
+ this.currentDebugRefresh = { refreshedAtoms: [], startMs: performance.now() };
78
+ }
84
79
  // Reset previous subcomputations as we're about to re-add them as part of the `doEffect` call below
85
80
  thunk.sub = new Set();
86
- const compute_ = (atom, otelContext) => {
81
+ const getAtom = (atom, otelContext) => {
87
82
  this.addEdge(thunk, atom);
88
83
  return compute(atom, otelContext);
89
84
  };
90
- const result = getResult_(compute_, addDebugInfo, this.context ?? shouldNeverHappen('No store context set yet'), otelContext);
85
+ let debugInfo = undefined;
86
+ const setDebugInfo = (debugInfo_) => {
87
+ debugInfo = debugInfo_;
88
+ };
89
+ const result = getResult(getAtom, setDebugInfo, this.context ?? throwContextNotSetError(), otelContext);
90
+ const resultChanged = thunk.equal(thunk.previousResult, result) === false;
91
+ const debugInfoForAtom = {
92
+ atom: serializeAtom(thunk),
93
+ resultChanged,
94
+ debugInfo: debugInfo ?? unknownRefreshReason(),
95
+ };
96
+ this.currentDebugRefresh.refreshedAtoms.push(debugInfoForAtom);
91
97
  thunk.isDirty = false;
92
98
  thunk.previousResult = result;
93
99
  thunk.recomputations++;
100
+ if (neededCurrentRefresh) {
101
+ const refreshedAtoms = this.currentDebugRefresh.refreshedAtoms;
102
+ const durationMs = performance.now() - this.currentDebugRefresh.startMs;
103
+ this.currentDebugRefresh = undefined;
104
+ const refreshDebugInfo = {
105
+ id: uniqueRefreshInfoId(),
106
+ reason: debugRefreshReason ?? { _tag: 'makeThunk', label: options?.label },
107
+ skippedRefresh: false,
108
+ refreshedAtoms,
109
+ durationMs,
110
+ completedTimestamp: Date.now(),
111
+ graphSnapshot: this.getSnapshot(),
112
+ };
113
+ this.debugRefreshInfos.push(refreshDebugInfo);
114
+ }
94
115
  return result;
95
116
  }
96
117
  else {
@@ -103,21 +124,9 @@ export class ReactiveGraph {
103
124
  label: options?.label,
104
125
  meta: options?.meta,
105
126
  equal: options?.equal ?? isEqual,
106
- __getResult: getResult_,
127
+ __getResult: getResult,
107
128
  };
108
129
  this.atoms.add(thunk);
109
- // this.dirtyNodes.add(thunk)
110
- const debugRefreshReason = options?.debugRefreshReason ?? { _tag: 'makeThunk', label: options?.label };
111
- const refreshDebugInfo = {
112
- id: uniqueRefreshInfoId(),
113
- reason: debugRefreshReason,
114
- skippedRefresh: true,
115
- refreshedAtoms: [],
116
- durationMs: 0,
117
- completedTimestamp: Date.now(),
118
- graphSnapshot: this.getSnapshot(),
119
- };
120
- this.debugRefreshInfos.push(refreshDebugInfo);
121
130
  return thunk;
122
131
  }
123
132
  destroy(node) {
@@ -140,6 +149,7 @@ export class ReactiveGraph {
140
149
  _tag: 'effect',
141
150
  id: uniqueNodeId(),
142
151
  doEffect: (otelContext) => {
152
+ // NOTE we're not tracking any debug refresh info for effects as they're tracked by the thunks they depend on
143
153
  // Reset previous subcomputations as we're about to re-add them as part of the `doEffect` call below
144
154
  effect.sub = new Set();
145
155
  const getAtom = (atom, otelContext) => {
@@ -149,233 +159,31 @@ export class ReactiveGraph {
149
159
  doEffect(getAtom, otelContext);
150
160
  },
151
161
  sub: new Set(),
162
+ label: options?.label,
152
163
  };
153
- // this.effects.add(effect)
154
- // this.dirtyNodes.add(effect)
155
- const debugRefreshReason = options?.debugRefreshReason ?? { _tag: 'makeEffect', label: options?.label };
156
- const refreshDebugInfo = {
157
- id: uniqueRefreshInfoId(),
158
- reason: debugRefreshReason ?? unknownRefreshReason(),
159
- skippedRefresh: true,
160
- refreshedAtoms: [],
161
- durationMs: 0,
162
- completedTimestamp: Date.now(),
163
- graphSnapshot: this.getSnapshot(),
164
- };
165
- this.debugRefreshInfos.push(refreshDebugInfo);
166
164
  return effect;
167
165
  }
168
166
  setRef(ref, val, options) {
169
- const { debugRefreshReason } = options ?? {};
170
167
  ref.previousResult = val;
171
168
  const effectsToRefresh = new Set();
172
169
  markSuperCompDirtyRec(ref, effectsToRefresh);
173
- this.effectsWrapper(() => {
174
- for (const effect of effectsToRefresh) {
175
- effect.doEffect(options?.otelContext);
176
- }
177
- });
178
- const refreshDebugInfo = {
179
- id: uniqueRefreshInfoId(),
180
- reason: debugRefreshReason ?? unknownRefreshReason(),
181
- skippedRefresh: true,
182
- refreshedAtoms: [],
183
- durationMs: 0,
184
- completedTimestamp: Date.now(),
185
- graphSnapshot: this.getSnapshot(),
186
- };
187
- this.debugRefreshInfos.push(refreshDebugInfo);
170
+ this.runEffects(effectsToRefresh, options);
188
171
  }
189
172
  setRefs(refs, options) {
190
- const debugRefreshReason = options?.debugRefreshReason;
191
173
  const effectsToRefresh = new Set();
192
174
  for (const [ref, val] of refs) {
193
175
  ref.previousResult = val;
194
176
  markSuperCompDirtyRec(ref, effectsToRefresh);
195
177
  }
196
- this.effectsWrapper(() => {
197
- for (const effect of effectsToRefresh) {
198
- effect.doEffect(options?.otelContext);
199
- }
200
- });
201
- const refreshDebugInfo = {
202
- id: uniqueRefreshInfoId(),
203
- reason: debugRefreshReason ?? unknownRefreshReason(),
204
- skippedRefresh: true,
205
- refreshedAtoms: [],
206
- durationMs: 0,
207
- completedTimestamp: Date.now(),
208
- graphSnapshot: this.getSnapshot(),
209
- };
210
- this.debugRefreshInfos.push(refreshDebugInfo);
211
- }
212
- // get<T>(atom: Atom<T, TContext>, context: Atom<any, TContext> | Effect): T {
213
- // // Autotracking: if we're getting the value of an atom,
214
- // // that means it's a subcomputation for the currently refreshing atom.
215
- // this.addEdge(context, atom)
216
- // const dependencyMightBeStale = context._tag !== 'effect' && context.height <= atom.height
217
- // const dependencyNotRefreshedYet = atom.result === NOT_REFRESHED_YET
218
- // if (dependencyMightBeStale || dependencyNotRefreshedYet) {
219
- // throw new DependencyNotReadyError(
220
- // `${this.label(context)} referenced dependency ${this.label(atom)} which isn't ready`,
221
- // )
222
- // }
223
- // return atom.result
224
- // }
225
- /**
226
- * Update the graph to be consistent with the current values of the root atoms.
227
- * Generally we run this after a ref is updated.
228
- * At the end of the refresh, we run any effects that were scheduled.
229
- *
230
- * @param roots Root atoms to start the refresh from
231
- */
232
- // refresh(
233
- // options?:
234
- // | {
235
- // otelHint?: string
236
- // debugRefreshReason?: RefreshReasonWithGenericReasons<TDebugRefreshReason>
237
- // }
238
- // | undefined,
239
- // otelContext: otel.Context = otel.context.active(),
240
- // ): void {
241
- // const otelHint = options?.otelHint ?? ''
242
- // const debugRefreshReason = options?.debugRefreshReason
243
- // const roots = [...this.dirtyNodes]
244
- // const debugInfoForRefreshedAtoms: AtomDebugInfo<TDebugThunkInfo>[] = []
245
- // // if (otelHint.includes('tableName')) {
246
- // // console.log('refresh', otelHint, { shouldTrace })
247
- // // }
248
- // this.otelTracer.startActiveSpan(`LiveStore.refresh:${otelHint}`, {}, otelContext, (span) => {
249
- // const atomsToRefresh = roots.filter(isAtom)
250
- // const effectsToRun = new Set(roots.filter(isEffect))
251
- // span.setAttribute('livestore.hint', otelHint)
252
- // span.setAttribute('livestore.rootsCount', roots.length)
253
- // // span.setAttribute('sstack', new Error().stack!)
254
- // // Sort in topological order, starting with minimum height
255
- // while (atomsToRefresh.length > 0) {
256
- // atomsToRefresh.sort((a, b) => a.height - b.height)
257
- // const atomToRefresh = atomsToRefresh.shift()!
258
- // // Recompute the value
259
- // let resultChanged = false
260
- // const debugInfoForAtom = {
261
- // atom: serializeAtom(atomToRefresh),
262
- // resultChanged,
263
- // // debugInfo: unknownRefreshReason() as TDebugThunkInfo,
264
- // debugInfo: { _tag: 'unknown' } as TDebugThunkInfo,
265
- // durationMs: 0,
266
- // } satisfies AtomDebugInfo<TDebugThunkInfo>
267
- // try {
268
- // atomToRefresh.sub = new Set()
269
- // const beforeTimestamp = performance.now()
270
- // const newResult = atomToRefresh.getResult(
271
- // (atom) => this.get(atom, atomToRefresh),
272
- // (debugInfo) => {
273
- // debugInfoForAtom.debugInfo = debugInfo
274
- // },
275
- // this.context ?? shouldNeverHappen(`No context provided yet for ReactiveGraph`),
276
- // )
277
- // const afterTimestamp = performance.now()
278
- // debugInfoForAtom.durationMs = afterTimestamp - beforeTimestamp
279
- // // Determine if the result changed to do early cutoff and avoid further unnecessary updates.
280
- // // Refs never depend on anything, so if a ref is being refreshed it definitely changed.
281
- // // For thunks, we use a deep equality check.
282
- // resultChanged =
283
- // atomToRefresh._tag === 'ref' ||
284
- // (atomToRefresh._tag === 'thunk' && !atomToRefresh.equal(atomToRefresh.result, newResult))
285
- // if (resultChanged) {
286
- // atomToRefresh.result = newResult
287
- // }
288
- // this.dirtyNodes.delete(atomToRefresh)
289
- // } catch (e) {
290
- // if (e instanceof DependencyNotReadyError) {
291
- // // If we hit a dependency that wasn't ready yet,
292
- // // abort this recomputation and try again later.
293
- // if (!atomsToRefresh.includes(atomToRefresh)) {
294
- // atomsToRefresh.push(atomToRefresh)
295
- // }
296
- // } else {
297
- // throw e
298
- // }
299
- // }
300
- // debugInfoForRefreshedAtoms.push(debugInfoForAtom)
301
- // if (!resultChanged) {
302
- // continue
303
- // }
304
- // // Schedule supercomputations
305
- // for (const superComp of atomToRefresh.super) {
306
- // switch (superComp._tag) {
307
- // case 'ref':
308
- // case 'thunk': {
309
- // if (!atomsToRefresh.includes(superComp)) {
310
- // atomsToRefresh.push(superComp)
311
- // }
312
- // break
313
- // }
314
- // case 'effect': {
315
- // effectsToRun.add(superComp)
316
- // break
317
- // }
318
- // }
319
- // }
320
- // }
321
- // this.effectsWrapper(() => {
322
- // for (const effect of effectsToRun) {
323
- // effect.doEffect((atom: Atom<any, TContext>) => this.get(atom, effect))
324
- // this.dirtyNodes.delete(effect)
325
- // }
326
- // })
327
- // span.end()
328
- // const spanDurationMs = getDurationMsFromSpan(span)
329
- // const refreshDebugInfo: RefreshDebugInfo<
330
- // RefreshReasonWithGenericReasons<TDebugRefreshReason>,
331
- // TDebugThunkInfo
332
- // > = {
333
- // id: uniqueRefreshInfoId(),
334
- // reason: debugRefreshReason ?? unknownRefreshReason(),
335
- // refreshedAtoms: debugInfoForRefreshedAtoms,
336
- // skippedRefresh: false,
337
- // durationMs: spanDurationMs,
338
- // completedTimestamp: Date.now(),
339
- // graphSnapshot: this.getSnapshot(),
340
- // }
341
- // this.debugRefreshInfos.push(refreshDebugInfo)
342
- // })
343
- // }
344
- label(atom) {
345
- if (atom._tag === 'effect') {
346
- return `unknown effect`;
347
- }
348
- else {
349
- return atom.label ?? `unknown ${atom._tag}`;
350
- }
178
+ this.runEffects(effectsToRefresh, options);
351
179
  }
352
180
  addEdge(superComp, subComp) {
353
181
  superComp.sub.add(subComp);
354
182
  subComp.super.add(superComp);
355
- this.updateAtomHeight(superComp);
356
183
  }
357
184
  removeEdge(superComp, subComp) {
358
185
  superComp.sub.delete(subComp);
359
186
  subComp.super.delete(superComp);
360
- this.updateAtomHeight(superComp);
361
- }
362
- updateAtomHeight(atom) {
363
- switch (atom._tag) {
364
- case 'ref': {
365
- atom.height = 0;
366
- break;
367
- }
368
- case 'thunk': {
369
- atom.height = (max([...atom.sub].map((atom) => atom.height)) || 0) + 1;
370
- break;
371
- }
372
- case 'effect': {
373
- break;
374
- }
375
- }
376
- }
377
- get atomsCount() {
378
- return this.atoms.size;
379
187
  }
380
188
  }
381
189
  // const isAtom = <T, TContext>(a: Atom<T, TContext> | Effect): a is Atom<T, TContext> =>
@@ -406,4 +214,7 @@ const markSuperCompDirtyRec = (atom, effectsToRefresh) => {
406
214
  }
407
215
  }
408
216
  };
217
+ const throwContextNotSetError = () => {
218
+ throw new Error(`LiveStore Error: \`context\` not set on ReactiveGraph`);
219
+ };
409
220
  //# sourceMappingURL=reactive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactive.js","sourceRoot":"","sources":["../src/reactive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactive.js","sourceRoot":"","sources":["../src/reactive.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,34 @@
1
1
  import type * as otel from '@opentelemetry/api';
2
- import type { StackInfo } from '../react/utils/extractStackInfoFromStackTrace.js';
3
- import type { Atom, GetAtom, Thunk } from '../reactive.js';
2
+ import type { StackInfo } from '../react/utils/stack-info.js';
3
+ import type { Atom, GetAtom, RefreshReasonWithGenericReasons, Thunk } from '../reactive.js';
4
+ import type { RefreshReason } from '../store.js';
4
5
  import { type DbContext } from './graph.js';
5
6
  import type { LiveStoreJSQuery } from './js.js';
6
7
  export type UnsubscribeQuery = () => void;
7
8
  export interface ILiveStoreQuery<TResult> {
8
9
  id: number;
9
10
  /** A reactive thunk representing the query results */
10
- results$: Thunk<TResult, DbContext>;
11
+ results$: Thunk<TResult, DbContext, RefreshReason>;
11
12
  label: string;
12
- run: (otelContext?: otel.Context) => TResult;
13
+ run: (otelContext?: otel.Context, debugRefreshReason?: RefreshReasonWithGenericReasons<RefreshReason>) => TResult;
13
14
  destroy(): void;
14
- activeSubscriptions: Set<SubscriberInfo>;
15
+ activeSubscriptions: Set<StackInfo>;
15
16
  }
16
- export type SubscriberInfo = {
17
- stack: StackInfo[];
18
- };
19
17
  export declare abstract class LiveStoreQueryBase<TResult> implements ILiveStoreQuery<TResult> {
20
18
  id: number;
21
19
  /** Human-readable label for the query for debugging */
22
20
  abstract label: string;
23
- abstract results$: Thunk<TResult, DbContext>;
24
- activeSubscriptions: Set<SubscriberInfo>;
21
+ abstract results$: Thunk<TResult, DbContext, RefreshReason>;
22
+ activeSubscriptions: Set<StackInfo>;
25
23
  get runs(): number;
26
24
  abstract destroy: () => void;
27
- run: (otelContext?: otel.Context) => TResult;
28
- runAndDestroy: (otelContext?: otel.Context) => TResult;
25
+ run: (otelContext?: otel.Context, debugRefreshReason?: RefreshReasonWithGenericReasons<RefreshReason>) => TResult;
26
+ runAndDestroy: (otelContext?: otel.Context, debugRefreshReason?: RefreshReasonWithGenericReasons<RefreshReason>) => TResult;
27
+ subscribe: (onNewValue: (value: TResult) => void, onUnsubsubscribe?: () => void, options?: {
28
+ label?: string;
29
+ otelContext?: otel.Context;
30
+ } | undefined) => (() => void);
29
31
  }
30
- export type GetAtomResult = <T>(atom: Atom<T, any> | LiveStoreJSQuery<T>) => T;
32
+ export type GetAtomResult = <T>(atom: Atom<T, any, RefreshReason> | LiveStoreJSQuery<T>) => T;
31
33
  export declare const makeGetAtomResult: (get: GetAtom, otelContext: otel.Context) => GetAtomResult;
32
34
  //# sourceMappingURL=base-class.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-class.d.ts","sourceRoot":"","sources":["../../src/reactiveQueries/base-class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kDAAkD,CAAA;AACjF,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAA;AAIzC,MAAM,WAAW,eAAe,CAAC,OAAO;IACtC,EAAE,EAAE,MAAM,CAAA;IAEV,sDAAsD;IACtD,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAEnC,KAAK,EAAE,MAAM,CAAA;IAEb,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO,CAAA;IAE5C,OAAO,IAAI,IAAI,CAAA;IAEf,mBAAmB,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;CACzC;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB,CAAA;AAED,8BAAsB,kBAAkB,CAAC,OAAO,CAAE,YAAW,eAAe,CAAC,OAAO,CAAC;IACnF,EAAE,SAAmB;IAErB,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IAEtB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAE5C,mBAAmB,EAAE,GAAG,CAAC,cAAc,CAAC,CAAY;IAEpD,IAAI,IAAI,WAEP;IAED,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAQ5B,GAAG,iBAAkB,KAAK,OAAO,KAAG,OAAO,CAA4C;IAEvF,aAAa,iBAAkB,KAAK,OAAO,KAAG,OAAO,CAIpD;CACF;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAE9E,eAAO,MAAM,iBAAiB,QAAS,OAAO,eAAe,KAAK,OAAO,kBAOxE,CAAA"}
1
+ {"version":3,"file":"base-class.d.ts","sourceRoot":"","sources":["../../src/reactiveQueries/base-class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,+BAA+B,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,KAAK,SAAS,EAAW,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAA;AAIzC,MAAM,WAAW,eAAe,CAAC,OAAO;IACtC,EAAE,EAAE,MAAM,CAAA;IAEV,sDAAsD;IACtD,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;IAElD,KAAK,EAAE,MAAM,CAAA;IAEb,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE,+BAA+B,CAAC,aAAa,CAAC,KAAK,OAAO,CAAA;IAEjH,OAAO,IAAI,IAAI,CAAA;IAEf,mBAAmB,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;CACpC;AAED,8BAAsB,kBAAkB,CAAC,OAAO,CAAE,YAAW,eAAe,CAAC,OAAO,CAAC;IACnF,EAAE,SAAmB;IAErB,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IAEtB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;IAE3D,mBAAmB,EAAE,GAAG,CAAC,SAAS,CAAC,CAAY;IAE/C,IAAI,IAAI,WAEP;IAED,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAE5B,GAAG,iBAAkB,KAAK,OAAO,uBAAuB,gCAAgC,aAAa,CAAC,KAAG,OAAO,CAClD;IAE9D,aAAa,iBACG,KAAK,OAAO,uBACL,gCAAgC,aAAa,CAAC,KAClE,OAAO,CAIT;IAED,SAAS,uBACa,OAAO,KAAK,IAAI,qBACjB,MAAM,IAAI,YACnB;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,KAAK,OAAO,CAAA;KAAE,GAAG,SAAS,KACnE,CAAC,MAAM,IAAI,CAAC,CAAiF;CACjG;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAE7F,eAAO,MAAM,iBAAiB,QAAS,OAAO,eAAe,KAAK,OAAO,kBAOxE,CAAA"}
@@ -1,19 +1,16 @@
1
+ import { dbGraph } from './graph.js';
1
2
  let queryIdCounter = 0;
2
3
  export class LiveStoreQueryBase {
3
4
  constructor() {
4
5
  this.id = queryIdCounter++;
5
6
  this.activeSubscriptions = new Set();
6
- // subscribe = (
7
- // onNewValue: (value: TResult) => void,
8
- // onSubsubscribe?: () => void,
9
- // options?: { label?: string } | undefined,
10
- // ): (() => void) => this.store.subscribe(this as any, onNewValue as any, onSubsubscribe, options)
11
- this.run = (otelContext) => this.results$.computeResult(otelContext);
12
- this.runAndDestroy = (otelContext) => {
13
- const result = this.run(otelContext);
7
+ this.run = (otelContext, debugRefreshReason) => this.results$.computeResult(otelContext, debugRefreshReason);
8
+ this.runAndDestroy = (otelContext, debugRefreshReason) => {
9
+ const result = this.run(otelContext, debugRefreshReason);
14
10
  this.destroy();
15
11
  return result;
16
12
  };
13
+ this.subscribe = (onNewValue, onUnsubsubscribe, options) => dbGraph.context.store.subscribe(this, onNewValue, onUnsubsubscribe, options);
17
14
  }
18
15
  get runs() {
19
16
  return this.results$.recomputations;
@@ -1 +1 @@
1
- {"version":3,"file":"base-class.js","sourceRoot":"","sources":["../../src/reactiveQueries/base-class.ts"],"names":[],"mappings":"AASA,IAAI,cAAc,GAAG,CAAC,CAAA;AAqBtB,MAAM,OAAgB,kBAAkB;IAAxC;QACE,OAAE,GAAG,cAAc,EAAE,CAAA;QAOrB,wBAAmB,GAAwB,IAAI,GAAG,EAAE,CAAA;QAQpD,gBAAgB;QAChB,0CAA0C;QAC1C,iCAAiC;QACjC,8CAA8C;QAC9C,mGAAmG;QAEnG,QAAG,GAAG,CAAC,WAA0B,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;QAEvF,kBAAa,GAAG,CAAC,WAA0B,EAAW,EAAE;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YACpC,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;IACH,CAAC;IAnBC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAA;IACrC,CAAC;CAiBF;AAID,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAE,WAAyB,EAAE,EAAE;IAC3E,MAAM,OAAO,GAAkB,CAAC,IAAI,EAAE,EAAE;QACtC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QAC/E,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IACxC,CAAC,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
1
+ {"version":3,"file":"base-class.js","sourceRoot":"","sources":["../../src/reactiveQueries/base-class.ts"],"names":[],"mappings":"AAKA,OAAO,EAAkB,OAAO,EAAE,MAAM,YAAY,CAAA;AAKpD,IAAI,cAAc,GAAG,CAAC,CAAA;AAiBtB,MAAM,OAAgB,kBAAkB;IAAxC;QACE,OAAE,GAAG,cAAc,EAAE,CAAA;QAOrB,wBAAmB,GAAmB,IAAI,GAAG,EAAE,CAAA;QAQ/C,QAAG,GAAG,CAAC,WAA0B,EAAE,kBAAmE,EAAW,EAAE,CACjH,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;QAE9D,kBAAa,GAAG,CACd,WAA0B,EAC1B,kBAAmE,EAC1D,EAAE;YACX,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;YACxD,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;QAED,cAAS,GAAG,CACV,UAAoC,EACpC,gBAA6B,EAC7B,OAAoE,EACtD,EAAE,CAAC,OAAO,CAAC,OAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAA;IAClG,CAAC;IAvBC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAA;IACrC,CAAC;CAqBF;AAID,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAE,WAAyB,EAAE,EAAE;IAC3E,MAAM,OAAO,GAAkB,CAAC,IAAI,EAAE,EAAE;QACtC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QAC/E,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IACxC,CAAC,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
@@ -2,7 +2,7 @@ import type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-
2
2
  import * as otel from '@opentelemetry/api';
3
3
  import * as graphql from 'graphql';
4
4
  import type { Thunk } from '../reactive.js';
5
- import { type BaseGraphQLContext, type Store } from '../store.js';
5
+ import type { BaseGraphQLContext, RefreshReason, Store } from '../store.js';
6
6
  import { type GetAtomResult, LiveStoreQueryBase } from './base-class.js';
7
7
  import { type DbContext } from './graph.js';
8
8
  import { LiveStoreJSQuery } from './js.js';
@@ -14,8 +14,8 @@ export declare class LiveStoreGraphQLQuery<TResult extends Record<string, any>,
14
14
  /** The abstract GraphQL query */
15
15
  document: DocumentNode<TResult, TVariableValues>;
16
16
  /** A reactive thunk representing the query results */
17
- results$: Thunk<TResult, DbContext>;
18
- variableValues$: Thunk<TVariableValues, DbContext>;
17
+ results$: Thunk<TResult, DbContext, RefreshReason>;
18
+ variableValues$: Thunk<TVariableValues, DbContext, RefreshReason>;
19
19
  label: string;
20
20
  constructor({ document, label, genVariableValues, }: {
21
21
  document: DocumentNode<TResult, TVariableValues>;
@@ -36,6 +36,7 @@ export declare class LiveStoreGraphQLQuery<TResult extends Record<string, any>,
36
36
  }) => {
37
37
  result: TResult;
38
38
  queriedTables: string[];
39
+ durationMs: number;
39
40
  };
40
41
  destroy: () => void;
41
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/reactiveQueries/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAE1F,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,kBAAkB,EAAqB,MAAM,iBAAiB,CAAA;AAC3F,OAAO,EAAE,KAAK,SAAS,EAAW,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,eAAO,MAAM,YAAY,mLAEqB,aAAa;;yEAEW,CAAA;AAEtE,qBAAa,qBAAqB,CAChC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3C,QAAQ,SAAS,kBAAkB,CACnC,SAAQ,kBAAkB,CAAC,OAAO,CAAC;IACnC,IAAI,EAAE,SAAS,CAAY;IAE3B,iCAAiC;IACjC,QAAQ,EAAE,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IAEhD,sDAAsD;IACtD,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAEnC,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,SAAS,CAAC,CAAA;IAElD,KAAK,EAAE,MAAM,CAAA;gBAED,EACV,QAAQ,EACR,KAAK,EACL,iBAAiB,GAClB,EAAE;QACD,QAAQ,EAAE,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QAChD,iBAAiB,EAAE,eAAe,GAAG,CAAC,CAAC,GAAG,EAAE,aAAa,KAAK,eAAe,CAAC,CAAA;QAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;KACf;IAuDD;;;OAGG;IACH,IAAI,mBAAoB,OAAO,OAAO,aAAa,+BAQ/C;IAEJ,SAAS;kBAOG,oBAAoB;qBACjB,KAAK,OAAO;oBACb,KAAK,MAAM;wBACP,eAAe;eACxB,MAAM,QAAQ,CAAC;;;;MAyCvB;IAED,OAAO,aAGN;CACF"}
1
+ {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/reactiveQueries/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,IAAI,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAE1F,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAGlC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,EAAE,KAAK,aAAa,EAAE,kBAAkB,EAAqB,MAAM,iBAAiB,CAAA;AAC3F,OAAO,EAAE,KAAK,SAAS,EAAW,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,eAAO,MAAM,YAAY,mLAEqB,aAAa;;yEAEW,CAAA;AAEtE,qBAAa,qBAAqB,CAChC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3C,QAAQ,SAAS,kBAAkB,CACnC,SAAQ,kBAAkB,CAAC,OAAO,CAAC;IACnC,IAAI,EAAE,SAAS,CAAY;IAE3B,iCAAiC;IACjC,QAAQ,EAAE,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IAEhD,sDAAsD;IACtD,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;IAElD,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;IAEjE,KAAK,EAAE,MAAM,CAAA;gBAED,EACV,QAAQ,EACR,KAAK,EACL,iBAAiB,GAClB,EAAE;QACD,QAAQ,EAAE,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QAChD,iBAAiB,EAAE,eAAe,GAAG,CAAC,CAAC,GAAG,EAAE,aAAa,KAAK,eAAe,CAAC,CAAA;QAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;KACf;IAkDD;;;OAGG;IACH,IAAI,mBAAoB,OAAO,OAAO,aAAa,+BAQ/C;IAEJ,SAAS;kBAOG,oBAAoB;qBACjB,KAAK,OAAO;oBACb,KAAK,MAAM;wBACP,eAAe;eACxB,MAAM,QAAQ,CAAC;;;;;MA2CvB;IAED,OAAO,aAGN;CACF"}