@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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/LiveStoreProvider.d.ts +6 -7
- package/dist/LiveStoreProvider.d.ts.map +1 -1
- package/dist/LiveStoreProvider.js +39 -24
- package/dist/LiveStoreProvider.js.map +1 -1
- package/dist/LiveStoreProvider.test.js +7 -7
- package/dist/LiveStoreProvider.test.js.map +1 -1
- package/dist/__tests__/fixture.d.ts +34 -12
- package/dist/__tests__/fixture.d.ts.map +1 -1
- package/dist/__tests__/fixture.js +13 -5
- package/dist/__tests__/fixture.js.map +1 -1
- package/dist/experimental/components/LiveList.js +1 -1
- package/dist/experimental/mod.d.ts +1 -0
- package/dist/experimental/mod.d.ts.map +1 -1
- package/dist/experimental/mod.js +1 -0
- package/dist/experimental/mod.js.map +1 -1
- package/dist/experimental/multi-store/StoreRegistry.d.ts +61 -0
- package/dist/experimental/multi-store/StoreRegistry.d.ts.map +1 -0
- package/dist/experimental/multi-store/StoreRegistry.js +275 -0
- package/dist/experimental/multi-store/StoreRegistry.js.map +1 -0
- package/dist/experimental/multi-store/StoreRegistry.test.d.ts +2 -0
- package/dist/experimental/multi-store/StoreRegistry.test.d.ts.map +1 -0
- package/dist/experimental/multi-store/StoreRegistry.test.js +464 -0
- package/dist/experimental/multi-store/StoreRegistry.test.js.map +1 -0
- package/dist/experimental/multi-store/StoreRegistryContext.d.ts +10 -0
- package/dist/experimental/multi-store/StoreRegistryContext.d.ts.map +1 -0
- package/dist/experimental/multi-store/StoreRegistryContext.js +15 -0
- package/dist/experimental/multi-store/StoreRegistryContext.js.map +1 -0
- package/dist/experimental/multi-store/mod.d.ts +6 -0
- package/dist/experimental/multi-store/mod.d.ts.map +1 -0
- package/dist/experimental/multi-store/mod.js +6 -0
- package/dist/experimental/multi-store/mod.js.map +1 -0
- package/dist/experimental/multi-store/storeOptions.d.ts +4 -0
- package/dist/experimental/multi-store/storeOptions.d.ts.map +1 -0
- package/dist/experimental/multi-store/storeOptions.js +4 -0
- package/dist/experimental/multi-store/storeOptions.js.map +1 -0
- package/dist/experimental/multi-store/types.d.ts +44 -0
- package/dist/experimental/multi-store/types.d.ts.map +1 -0
- package/dist/experimental/multi-store/types.js +2 -0
- package/dist/experimental/multi-store/types.js.map +1 -0
- package/dist/experimental/multi-store/useStore.d.ts +11 -0
- package/dist/experimental/multi-store/useStore.d.ts.map +1 -0
- package/dist/experimental/multi-store/useStore.js +21 -0
- package/dist/experimental/multi-store/useStore.js.map +1 -0
- package/dist/experimental/multi-store/useStore.test.d.ts +2 -0
- package/dist/experimental/multi-store/useStore.test.d.ts.map +1 -0
- package/dist/experimental/multi-store/useStore.test.js +144 -0
- package/dist/experimental/multi-store/useStore.test.js.map +1 -0
- package/dist/mod.d.ts +1 -1
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js.map +1 -1
- package/dist/useClientDocument.d.ts +10 -13
- package/dist/useClientDocument.d.ts.map +1 -1
- package/dist/useClientDocument.js +4 -5
- package/dist/useClientDocument.js.map +1 -1
- package/dist/useClientDocument.test.js +29 -7
- package/dist/useClientDocument.test.js.map +1 -1
- package/dist/useQuery.d.ts +28 -6
- package/dist/useQuery.d.ts.map +1 -1
- package/dist/useQuery.js +63 -18
- package/dist/useQuery.js.map +1 -1
- package/dist/useQuery.test.js +35 -11
- package/dist/useQuery.test.js.map +1 -1
- package/dist/useRcResource.test.js +1 -1
- package/dist/useStore.d.ts +2 -1
- package/dist/useStore.d.ts.map +1 -1
- package/dist/useStore.js +1 -1
- package/dist/useStore.js.map +1 -1
- package/package.json +14 -14
- package/src/LiveStoreProvider.test.tsx +7 -7
- package/src/LiveStoreProvider.tsx +58 -45
- package/src/__snapshots__/useClientDocument.test.tsx.snap +208 -100
- package/src/__snapshots__/useQuery.test.tsx.snap +400 -128
- package/src/__tests__/fixture.tsx +23 -24
- package/src/experimental/components/LiveList.tsx +1 -1
- package/src/experimental/mod.ts +1 -0
- package/src/experimental/multi-store/StoreRegistry.test.ts +631 -0
- package/src/experimental/multi-store/StoreRegistry.ts +347 -0
- package/src/experimental/multi-store/StoreRegistryContext.tsx +23 -0
- package/src/experimental/multi-store/mod.ts +5 -0
- package/src/experimental/multi-store/storeOptions.ts +8 -0
- package/src/experimental/multi-store/types.ts +55 -0
- package/src/experimental/multi-store/useStore.test.tsx +197 -0
- package/src/experimental/multi-store/useStore.ts +34 -0
- package/src/mod.ts +2 -1
- package/src/useClientDocument.test.tsx +105 -75
- package/src/useClientDocument.ts +23 -13
- package/src/useQuery.test.tsx +62 -11
- package/src/useQuery.ts +98 -27
- package/src/useRcResource.test.tsx +1 -1
- package/src/useStore.ts +4 -3
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { makeInMemoryAdapter } from '@livestore/adapter-web'
|
|
2
|
-
import { provideOtel, type
|
|
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.
|
|
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
|
|
91
|
-
otelTracer
|
|
92
|
-
otelContext
|
|
93
|
-
strictMode
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
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
|
-
|
|
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 })))
|
package/src/experimental/mod.ts
CHANGED