@livestore/react 0.4.0-dev.2 → 0.4.0-dev.20

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 (91) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/LiveStoreProvider.d.ts +6 -7
  3. package/dist/LiveStoreProvider.d.ts.map +1 -1
  4. package/dist/LiveStoreProvider.js +39 -24
  5. package/dist/LiveStoreProvider.js.map +1 -1
  6. package/dist/LiveStoreProvider.test.js +7 -7
  7. package/dist/LiveStoreProvider.test.js.map +1 -1
  8. package/dist/__tests__/fixture.d.ts +34 -12
  9. package/dist/__tests__/fixture.d.ts.map +1 -1
  10. package/dist/__tests__/fixture.js +13 -5
  11. package/dist/__tests__/fixture.js.map +1 -1
  12. package/dist/experimental/components/LiveList.js +1 -1
  13. package/dist/experimental/mod.d.ts +1 -0
  14. package/dist/experimental/mod.d.ts.map +1 -1
  15. package/dist/experimental/mod.js +1 -0
  16. package/dist/experimental/mod.js.map +1 -1
  17. package/dist/experimental/multi-store/StoreRegistry.d.ts +61 -0
  18. package/dist/experimental/multi-store/StoreRegistry.d.ts.map +1 -0
  19. package/dist/experimental/multi-store/StoreRegistry.js +275 -0
  20. package/dist/experimental/multi-store/StoreRegistry.js.map +1 -0
  21. package/dist/experimental/multi-store/StoreRegistry.test.d.ts +2 -0
  22. package/dist/experimental/multi-store/StoreRegistry.test.d.ts.map +1 -0
  23. package/dist/experimental/multi-store/StoreRegistry.test.js +464 -0
  24. package/dist/experimental/multi-store/StoreRegistry.test.js.map +1 -0
  25. package/dist/experimental/multi-store/StoreRegistryContext.d.ts +10 -0
  26. package/dist/experimental/multi-store/StoreRegistryContext.d.ts.map +1 -0
  27. package/dist/experimental/multi-store/StoreRegistryContext.js +15 -0
  28. package/dist/experimental/multi-store/StoreRegistryContext.js.map +1 -0
  29. package/dist/experimental/multi-store/mod.d.ts +6 -0
  30. package/dist/experimental/multi-store/mod.d.ts.map +1 -0
  31. package/dist/experimental/multi-store/mod.js +6 -0
  32. package/dist/experimental/multi-store/mod.js.map +1 -0
  33. package/dist/experimental/multi-store/storeOptions.d.ts +4 -0
  34. package/dist/experimental/multi-store/storeOptions.d.ts.map +1 -0
  35. package/dist/experimental/multi-store/storeOptions.js +4 -0
  36. package/dist/experimental/multi-store/storeOptions.js.map +1 -0
  37. package/dist/experimental/multi-store/types.d.ts +44 -0
  38. package/dist/experimental/multi-store/types.d.ts.map +1 -0
  39. package/dist/experimental/multi-store/types.js +2 -0
  40. package/dist/experimental/multi-store/types.js.map +1 -0
  41. package/dist/experimental/multi-store/useStore.d.ts +11 -0
  42. package/dist/experimental/multi-store/useStore.d.ts.map +1 -0
  43. package/dist/experimental/multi-store/useStore.js +21 -0
  44. package/dist/experimental/multi-store/useStore.js.map +1 -0
  45. package/dist/experimental/multi-store/useStore.test.d.ts +2 -0
  46. package/dist/experimental/multi-store/useStore.test.d.ts.map +1 -0
  47. package/dist/experimental/multi-store/useStore.test.js +144 -0
  48. package/dist/experimental/multi-store/useStore.test.js.map +1 -0
  49. package/dist/mod.d.ts +1 -1
  50. package/dist/mod.d.ts.map +1 -1
  51. package/dist/mod.js.map +1 -1
  52. package/dist/useClientDocument.d.ts +10 -13
  53. package/dist/useClientDocument.d.ts.map +1 -1
  54. package/dist/useClientDocument.js +4 -5
  55. package/dist/useClientDocument.js.map +1 -1
  56. package/dist/useClientDocument.test.js +29 -7
  57. package/dist/useClientDocument.test.js.map +1 -1
  58. package/dist/useQuery.d.ts +28 -6
  59. package/dist/useQuery.d.ts.map +1 -1
  60. package/dist/useQuery.js +63 -18
  61. package/dist/useQuery.js.map +1 -1
  62. package/dist/useQuery.test.js +35 -11
  63. package/dist/useQuery.test.js.map +1 -1
  64. package/dist/useRcResource.test.js +1 -1
  65. package/dist/useStore.d.ts +2 -1
  66. package/dist/useStore.d.ts.map +1 -1
  67. package/dist/useStore.js +1 -1
  68. package/dist/useStore.js.map +1 -1
  69. package/package.json +14 -14
  70. package/src/LiveStoreProvider.test.tsx +7 -7
  71. package/src/LiveStoreProvider.tsx +58 -45
  72. package/src/__snapshots__/useClientDocument.test.tsx.snap +208 -100
  73. package/src/__snapshots__/useQuery.test.tsx.snap +400 -128
  74. package/src/__tests__/fixture.tsx +23 -24
  75. package/src/experimental/components/LiveList.tsx +1 -1
  76. package/src/experimental/mod.ts +1 -0
  77. package/src/experimental/multi-store/StoreRegistry.test.ts +631 -0
  78. package/src/experimental/multi-store/StoreRegistry.ts +347 -0
  79. package/src/experimental/multi-store/StoreRegistryContext.tsx +23 -0
  80. package/src/experimental/multi-store/mod.ts +5 -0
  81. package/src/experimental/multi-store/storeOptions.ts +8 -0
  82. package/src/experimental/multi-store/types.ts +55 -0
  83. package/src/experimental/multi-store/useStore.test.tsx +197 -0
  84. package/src/experimental/multi-store/useStore.ts +34 -0
  85. package/src/mod.ts +2 -1
  86. package/src/useClientDocument.test.tsx +105 -75
  87. package/src/useClientDocument.ts +23 -13
  88. package/src/useQuery.test.tsx +62 -11
  89. package/src/useQuery.ts +98 -27
  90. package/src/useRcResource.test.tsx +1 -1
  91. package/src/useStore.ts +4 -3
@@ -1,13 +1,14 @@
1
1
  import { makeInMemoryAdapter } from '@livestore/adapter-web'
2
- import { provideOtel, type UnexpectedError } from '@livestore/common'
2
+ import { provideOtel, type UnknownError } from '@livestore/common'
3
3
  import { Events, makeSchema, State } from '@livestore/common/schema'
4
4
  import type { LiveStoreSchema, SqliteDsl, Store } from '@livestore/livestore'
5
5
  import { createStore } from '@livestore/livestore'
6
+ import { omitUndefineds } from '@livestore/utils'
6
7
  import { Effect, Schema, type Scope } from '@livestore/utils/effect'
7
8
  import type * as otel from '@opentelemetry/api'
8
9
  import React from 'react'
9
10
 
10
- import * as LiveStoreReact from '../mod.js'
11
+ import * as LiveStoreReact from '../mod.ts'
11
12
 
12
13
  export type Todo = {
13
14
  id: string
@@ -60,6 +61,12 @@ const AppRouterSchema = State.SQLite.clientDocument({
60
61
  },
61
62
  })
62
63
 
64
+ const kv = State.SQLite.clientDocument({
65
+ name: 'Kv',
66
+ schema: Schema.Any,
67
+ default: { value: null },
68
+ })
69
+
63
70
  export const events = {
64
71
  todoCreated: Events.synced({
65
72
  name: 'todoCreated',
@@ -75,44 +82,36 @@ export const events = {
75
82
  }),
76
83
  AppRouterSet: AppRouterSchema.set,
77
84
  UserInfoSet: userInfo.set,
85
+ KvSet: kv.set,
78
86
  }
79
87
 
80
88
  const materializers = State.SQLite.materializers(events, {
81
89
  todoCreated: ({ id, text, completed }) => todos.insert({ id, text, completed }),
82
- todoUpdated: ({ id, text, completed }) => todos.update({ completed, text }).where({ id }),
90
+ todoUpdated: ({ id, text, completed }) => todos.update({ ...omitUndefineds({ completed, text }) }).where({ id }),
83
91
  })
84
92
 
85
- export const tables = { todos, app, userInfo, AppRouterSchema }
93
+ export const tables = { todos, app, userInfo, AppRouterSchema, kv }
86
94
 
87
95
  const state = State.SQLite.makeState({ tables, materializers })
88
96
  export const schema = makeSchema({ state, events })
89
97
 
90
- export const makeTodoMvcReact: ({
91
- otelTracer,
92
- otelContext,
93
- strictMode,
94
- }?: {
95
- otelTracer?: otel.Tracer
96
- otelContext?: otel.Context
97
- strictMode?: boolean
98
- }) => Effect.Effect<
98
+ export type MakeTodoMvcReactOptions = {
99
+ otelTracer?: otel.Tracer | undefined
100
+ otelContext?: otel.Context | undefined
101
+ strictMode?: boolean | undefined
102
+ }
103
+
104
+ export const makeTodoMvcReact: (opts?: MakeTodoMvcReactOptions) => Effect.Effect<
99
105
  {
100
106
  wrapper: ({ children }: any) => React.JSX.Element
101
107
  store: Store<LiveStoreSchema<SqliteDsl.DbSchema, State.SQLite.EventDefRecord>, {}> & LiveStoreReact.ReactApi
102
108
  renderCount: { readonly val: number; inc: () => void }
103
109
  },
104
- UnexpectedError,
110
+ UnknownError,
105
111
  Scope.Scope
106
- > = ({
107
- otelTracer,
108
- otelContext,
109
- strictMode,
110
- }: {
111
- otelTracer?: otel.Tracer
112
- otelContext?: otel.Context
113
- strictMode?: boolean
114
- } = {}) =>
112
+ > = (opts: MakeTodoMvcReactOptions = {}) =>
115
113
  Effect.gen(function* () {
114
+ const { strictMode } = opts
116
115
  const makeRenderCount = () => {
117
116
  let val = 0
118
117
 
@@ -156,4 +155,4 @@ export const makeTodoMvcReact: ({
156
155
  const renderCount = makeRenderCount()
157
156
 
158
157
  return { wrapper, store: storeWithReactApi, renderCount }
159
- }).pipe(provideOtel({ parentSpanContext: otelContext, otelTracer }))
158
+ }).pipe(provideOtel(omitUndefineds({ parentSpanContext: opts.otelContext, otelTracer: opts.otelTracer })))
@@ -2,7 +2,7 @@ import type { LiveQueryDef } from '@livestore/livestore'
2
2
  import { computed } from '@livestore/livestore'
3
3
  import React from 'react'
4
4
 
5
- import { useQuery } from '../../useQuery.js'
5
+ import { useQuery } from '../../useQuery.ts'
6
6
 
7
7
  /*
8
8
  TODO:
@@ -1 +1,2 @@
1
1
  export { LiveList, type LiveListProps } from './components/LiveList.tsx'
2
+ export * from './multi-store/mod.ts'