@livestore/livestore 0.3.0-dev.28 → 0.3.0-dev.30
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/SqliteDbWrapper.d.ts.map +1 -1
- package/dist/SqliteDbWrapper.js +4 -1
- package/dist/SqliteDbWrapper.js.map +1 -1
- package/dist/live-queries/base-class.d.ts +8 -12
- package/dist/live-queries/base-class.d.ts.map +1 -1
- package/dist/live-queries/base-class.js.map +1 -1
- package/dist/live-queries/client-document-get-query.d.ts +12 -0
- package/dist/live-queries/client-document-get-query.d.ts.map +1 -0
- package/dist/live-queries/client-document-get-query.js +18 -0
- package/dist/live-queries/client-document-get-query.js.map +1 -0
- package/dist/live-queries/computed.d.ts +4 -8
- package/dist/live-queries/computed.d.ts.map +1 -1
- package/dist/live-queries/computed.js +1 -6
- package/dist/live-queries/computed.js.map +1 -1
- package/dist/live-queries/db-query.d.ts +13 -18
- package/dist/live-queries/db-query.d.ts.map +1 -1
- package/dist/live-queries/db-query.js +34 -34
- package/dist/live-queries/db-query.js.map +1 -1
- package/dist/live-queries/db-query.test.js +32 -23
- package/dist/live-queries/db-query.test.js.map +1 -1
- package/dist/live-queries/make-ref.d.ts.map +1 -1
- package/dist/live-queries/make-ref.js +1 -0
- package/dist/live-queries/make-ref.js.map +1 -1
- package/dist/mod.d.ts +0 -1
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +0 -1
- package/dist/mod.js.map +1 -1
- package/dist/reactive.d.ts.map +1 -1
- package/dist/reactive.js +1 -1
- package/dist/reactive.js.map +1 -1
- package/dist/store/create-store.js +2 -2
- package/dist/store/create-store.js.map +1 -1
- package/dist/store/store-types.d.ts +5 -5
- package/dist/store/store-types.d.ts.map +1 -1
- package/dist/store/store.d.ts +27 -26
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +74 -69
- package/dist/store/store.js.map +1 -1
- package/dist/utils/stack-info.test.js +6 -6
- package/dist/utils/tests/fixture.d.ts +54 -207
- package/dist/utils/tests/fixture.d.ts.map +1 -1
- package/dist/utils/tests/fixture.js +20 -13
- package/dist/utils/tests/fixture.js.map +1 -1
- package/dist/utils/tests/otel.d.ts.map +1 -1
- package/dist/utils/tests/otel.js +8 -3
- package/dist/utils/tests/otel.js.map +1 -1
- package/package.json +7 -7
- package/src/SqliteDbWrapper.ts +4 -1
- package/src/live-queries/__snapshots__/db-query.test.ts.snap +9 -9
- package/src/live-queries/base-class.ts +8 -25
- package/src/live-queries/client-document-get-query.ts +52 -0
- package/src/live-queries/computed.ts +4 -18
- package/src/live-queries/db-query.test.ts +38 -24
- package/src/live-queries/db-query.ts +60 -66
- package/src/live-queries/make-ref.ts +2 -0
- package/src/mod.ts +0 -2
- package/src/reactive.ts +1 -1
- package/src/store/create-store.ts +2 -2
- package/src/store/store-types.ts +5 -5
- package/src/store/store.ts +97 -91
- package/src/utils/stack-info.test.ts +6 -6
- package/src/utils/tests/fixture.ts +21 -25
- package/src/utils/tests/otel.ts +10 -3
- package/tmp/pack.tgz +0 -0
- package/dist/row-query-utils.d.ts +0 -17
- package/dist/row-query-utils.d.ts.map +0 -1
- package/dist/row-query-utils.js +0 -34
- package/dist/row-query-utils.js.map +0 -1
- package/src/row-query-utils.ts +0 -76
package/src/row-query-utils.ts
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import type { PreparedBindValues, QueryInfo } from '@livestore/common'
|
|
2
|
-
import { SessionIdSymbol } from '@livestore/common'
|
|
3
|
-
import { DbSchema } from '@livestore/common/schema'
|
|
4
|
-
import { shouldNeverHappen } from '@livestore/utils'
|
|
5
|
-
import type * as otel from '@opentelemetry/api'
|
|
6
|
-
|
|
7
|
-
import type { GetResult, LiveQueryDef, ReactivityGraphContext } from './live-queries/base-class.js'
|
|
8
|
-
import { computed } from './live-queries/computed.js'
|
|
9
|
-
|
|
10
|
-
export const rowQueryLabel = (table: DbSchema.TableDefBase, id: string | SessionIdSymbol | number | undefined) =>
|
|
11
|
-
`row:${table.sqliteDef.name}${id === undefined ? '' : id === SessionIdSymbol ? `:sessionId` : `:${id}`}`
|
|
12
|
-
|
|
13
|
-
export const deriveColQuery: {
|
|
14
|
-
<TQueryDef extends LiveQueryDef<any, QueryInfo.None>, TCol extends keyof GetResult<TQueryDef> & string>(
|
|
15
|
-
queryDef: TQueryDef,
|
|
16
|
-
colName: TCol,
|
|
17
|
-
): LiveQueryDef<GetResult<TQueryDef>[TCol], QueryInfo.None>
|
|
18
|
-
<TQueryDef extends LiveQueryDef<any, QueryInfo.Row>, TCol extends keyof GetResult<TQueryDef> & string>(
|
|
19
|
-
queryDef: TQueryDef,
|
|
20
|
-
colName: TCol,
|
|
21
|
-
): LiveQueryDef<GetResult<TQueryDef>[TCol], QueryInfo.Col>
|
|
22
|
-
} = (queryDef: LiveQueryDef<any, QueryInfo.Row | QueryInfo.Col>, colName: string) => {
|
|
23
|
-
return computed((get) => get(queryDef)[colName], {
|
|
24
|
-
label: `deriveColQuery:${queryDef.label}:${colName}`,
|
|
25
|
-
queryInfo:
|
|
26
|
-
queryDef.queryInfo._tag === 'Row'
|
|
27
|
-
? { _tag: 'Col', table: queryDef.queryInfo.table, column: colName, id: queryDef.queryInfo.id }
|
|
28
|
-
: undefined,
|
|
29
|
-
deps: [
|
|
30
|
-
queryDef.queryInfo.table.sqliteDef.name,
|
|
31
|
-
queryDef.queryInfo.id === SessionIdSymbol ? 'sessionId' : queryDef.queryInfo.id,
|
|
32
|
-
queryDef.queryInfo._tag === 'Col' ? queryDef.queryInfo.column : undefined,
|
|
33
|
-
],
|
|
34
|
-
}) as any
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export const makeExecBeforeFirstRun =
|
|
38
|
-
({
|
|
39
|
-
id,
|
|
40
|
-
insertValues,
|
|
41
|
-
table,
|
|
42
|
-
otelContext: otelContext_,
|
|
43
|
-
}: {
|
|
44
|
-
id?: string | SessionIdSymbol | number
|
|
45
|
-
insertValues?: any
|
|
46
|
-
table: DbSchema.TableDefBase
|
|
47
|
-
otelContext: otel.Context | undefined
|
|
48
|
-
}) =>
|
|
49
|
-
({ store }: ReactivityGraphContext) => {
|
|
50
|
-
const otelContext = otelContext_ ?? store.otel.queriesSpanContext
|
|
51
|
-
|
|
52
|
-
if (table.options.isSingleton === false) {
|
|
53
|
-
const idVal = id === SessionIdSymbol ? store.sessionId : id!
|
|
54
|
-
const rowExists =
|
|
55
|
-
store.sqliteDbWrapper.select(
|
|
56
|
-
`SELECT 1 FROM '${table.sqliteDef.name}' WHERE id = ?`,
|
|
57
|
-
[idVal] as any as PreparedBindValues,
|
|
58
|
-
{ otelContext },
|
|
59
|
-
).length === 1
|
|
60
|
-
|
|
61
|
-
if (rowExists) return
|
|
62
|
-
|
|
63
|
-
if (DbSchema.tableHasDerivedMutations(table) === false) {
|
|
64
|
-
return shouldNeverHappen(
|
|
65
|
-
`Cannot insert row for table "${table.sqliteDef.name}" which does not have 'deriveMutations: true' set`,
|
|
66
|
-
)
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// It's important that we only commit and don't refresh here, as this function might be called during a render
|
|
70
|
-
// and otherwise we might end up in a "reactive loop"
|
|
71
|
-
store.commit(
|
|
72
|
-
{ otelContext, skipRefresh: true, label: `rowQuery:${table.sqliteDef.name}:${idVal}` },
|
|
73
|
-
table.insert({ id, ...insertValues }),
|
|
74
|
-
)
|
|
75
|
-
}
|
|
76
|
-
}
|