@livestore/react 0.4.0-dev.16 → 0.4.0-dev.18

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 (36) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/LiveStoreProvider.test.js +2 -2
  3. package/dist/LiveStoreProvider.test.js.map +1 -1
  4. package/dist/experimental/multi-store/StoreRegistry.d.ts.map +1 -1
  5. package/dist/experimental/multi-store/StoreRegistry.js +58 -58
  6. package/dist/experimental/multi-store/StoreRegistry.js.map +1 -1
  7. package/dist/experimental/multi-store/StoreRegistry.test.d.ts +2 -0
  8. package/dist/experimental/multi-store/StoreRegistry.test.d.ts.map +1 -0
  9. package/dist/experimental/multi-store/StoreRegistry.test.js +373 -0
  10. package/dist/experimental/multi-store/StoreRegistry.test.js.map +1 -0
  11. package/dist/experimental/multi-store/useStore.d.ts.map +1 -1
  12. package/dist/experimental/multi-store/useStore.js +7 -3
  13. package/dist/experimental/multi-store/useStore.js.map +1 -1
  14. package/dist/experimental/multi-store/useStore.test.d.ts +2 -0
  15. package/dist/experimental/multi-store/useStore.test.d.ts.map +1 -0
  16. package/dist/experimental/multi-store/useStore.test.js +144 -0
  17. package/dist/experimental/multi-store/useStore.test.js.map +1 -0
  18. package/dist/useClientDocument.js +1 -1
  19. package/dist/useClientDocument.js.map +1 -1
  20. package/dist/useClientDocument.test.js +7 -3
  21. package/dist/useClientDocument.test.js.map +1 -1
  22. package/dist/useQuery.d.ts.map +1 -1
  23. package/dist/useQuery.js +3 -3
  24. package/dist/useQuery.js.map +1 -1
  25. package/dist/useQuery.test.js +9 -9
  26. package/dist/useQuery.test.js.map +1 -1
  27. package/package.json +6 -6
  28. package/src/LiveStoreProvider.test.tsx +2 -2
  29. package/src/experimental/multi-store/StoreRegistry.test.ts +511 -0
  30. package/src/experimental/multi-store/StoreRegistry.ts +63 -64
  31. package/src/experimental/multi-store/useStore.test.tsx +197 -0
  32. package/src/experimental/multi-store/useStore.ts +7 -3
  33. package/src/useClientDocument.test.tsx +73 -72
  34. package/src/useClientDocument.ts +1 -1
  35. package/src/useQuery.test.tsx +15 -9
  36. package/src/useQuery.ts +4 -3
@@ -1,6 +1,6 @@
1
1
  /** biome-ignore-all lint/a11y: test */
2
2
  import * as LiveStore from '@livestore/livestore'
3
- import { queryDb, signal } from '@livestore/livestore'
3
+ import { queryDb, StoreInternalsSymbol, signal } from '@livestore/livestore'
4
4
  import { RG } from '@livestore/livestore/internal/testing-utils'
5
5
  import { Effect, Schema } from '@livestore/utils/effect'
6
6
  import { Vitest } from '@livestore/utils-dev/node-vitest'
@@ -38,14 +38,14 @@ Vitest.describe.each([{ strictMode: true }, { strictMode: false }] as const)(
38
38
 
39
39
  expect(result.current.length).toBe(0)
40
40
  expect(renderCount.val).toBe(1)
41
- expect(store.reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot()
41
+ expect(store[StoreInternalsSymbol].reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot()
42
42
 
43
43
  ReactTesting.act(() => store.commit(events.todoCreated({ id: 't1', text: 'buy milk', completed: false })))
44
44
 
45
45
  expect(result.current.length).toBe(1)
46
46
  expect(result.current[0]!.text).toBe('buy milk')
47
47
  expect(renderCount.val).toBe(2)
48
- expect(store.reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot()
48
+ expect(store[StoreInternalsSymbol].reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot()
49
49
  }),
50
50
  )
51
51
 
@@ -80,19 +80,25 @@ Vitest.describe.each([{ strictMode: true }, { strictMode: false }] as const)(
80
80
 
81
81
  expect(result.current).toBe('buy milk')
82
82
  expect(renderCount.val).toBe(1)
83
- expect(store.reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot('1: after first render')
83
+ expect(store[StoreInternalsSymbol].reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot(
84
+ '1: after first render',
85
+ )
84
86
 
85
87
  ReactTesting.act(() => store.commit(events.todoUpdated({ id: 't1', text: 'buy soy milk' })))
86
88
 
87
89
  expect(result.current).toBe('buy soy milk')
88
90
  expect(renderCount.val).toBe(2)
89
- expect(store.reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot('2: after first commit')
91
+ expect(store[StoreInternalsSymbol].reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot(
92
+ '2: after first commit',
93
+ )
90
94
 
91
95
  rerender('t2')
92
96
 
93
97
  expect(result.current).toBe('buy eggs')
94
98
  expect(renderCount.val).toBe(3)
95
- expect(store.reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot('3: after forced rerender')
99
+ expect(store[StoreInternalsSymbol].reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot(
100
+ '3: after forced rerender',
101
+ )
96
102
  }),
97
103
  )
98
104
 
@@ -120,19 +126,19 @@ Vitest.describe.each([{ strictMode: true }, { strictMode: false }] as const)(
120
126
 
121
127
  expect(result.current).toBe('buy milk')
122
128
  expect(renderCount.val).toBe(1)
123
- expect(store.reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot()
129
+ expect(store[StoreInternalsSymbol].reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot()
124
130
 
125
131
  ReactTesting.act(() => store.commit(events.todoUpdated({ id: 't1', text: 'buy soy milk' })))
126
132
 
127
133
  expect(result.current).toBe('buy soy milk')
128
134
  expect(renderCount.val).toBe(2)
129
- expect(store.reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot()
135
+ expect(store[StoreInternalsSymbol].reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot()
130
136
 
131
137
  ReactTesting.act(() => store.setSignal(filter$, 't2'))
132
138
 
133
139
  expect(result.current).toBe('buy eggs')
134
140
  expect(renderCount.val).toBe(3)
135
- expect(store.reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot()
141
+ expect(store[StoreInternalsSymbol].reactivityGraph.getSnapshot({ includeResults: true })).toMatchSnapshot()
136
142
  }),
137
143
  )
138
144
 
package/src/useQuery.ts CHANGED
@@ -6,6 +6,7 @@ import {
6
6
  type Queryable,
7
7
  queryDb,
8
8
  type SignalDef,
9
+ StoreInternalsSymbol,
9
10
  stackInfoToString,
10
11
  } from '@livestore/livestore'
11
12
  import type { LiveQueries } from '@livestore/livestore/internal'
@@ -122,17 +123,17 @@ export const useQueryRef = <TQueryable extends Queryable<any>>(
122
123
  const { queryRcRef, span, otelContext } = useRcResource(
123
124
  rcRefKey,
124
125
  () => {
125
- const span = store.otel.tracer.startSpan(
126
+ const span = store[StoreInternalsSymbol].otel.tracer.startSpan(
126
127
  options?.otelSpanName ?? `LiveStore:useQuery:${resourceLabel}`,
127
128
  { attributes: { label: resourceLabel, firstStackInfo: JSON.stringify(stackInfo) } },
128
- options?.otelContext ?? store.otel.queriesSpanContext,
129
+ options?.otelContext ?? store[StoreInternalsSymbol].otel.queriesSpanContext,
129
130
  )
130
131
 
131
132
  const otelContext = otel.trace.setSpan(otel.context.active(), span)
132
133
 
133
134
  const queryRcRef =
134
135
  normalized._tag === 'definition'
135
- ? normalized.def.make(store.reactivityGraph.context!, otelContext)
136
+ ? normalized.def.make(store[StoreInternalsSymbol].reactivityGraph.context!, otelContext)
136
137
  : ({
137
138
  value: normalized.query$,
138
139
  deref: () => {},