@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.
Files changed (70) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/SqliteDbWrapper.d.ts.map +1 -1
  3. package/dist/SqliteDbWrapper.js +4 -1
  4. package/dist/SqliteDbWrapper.js.map +1 -1
  5. package/dist/live-queries/base-class.d.ts +8 -12
  6. package/dist/live-queries/base-class.d.ts.map +1 -1
  7. package/dist/live-queries/base-class.js.map +1 -1
  8. package/dist/live-queries/client-document-get-query.d.ts +12 -0
  9. package/dist/live-queries/client-document-get-query.d.ts.map +1 -0
  10. package/dist/live-queries/client-document-get-query.js +18 -0
  11. package/dist/live-queries/client-document-get-query.js.map +1 -0
  12. package/dist/live-queries/computed.d.ts +4 -8
  13. package/dist/live-queries/computed.d.ts.map +1 -1
  14. package/dist/live-queries/computed.js +1 -6
  15. package/dist/live-queries/computed.js.map +1 -1
  16. package/dist/live-queries/db-query.d.ts +13 -18
  17. package/dist/live-queries/db-query.d.ts.map +1 -1
  18. package/dist/live-queries/db-query.js +34 -34
  19. package/dist/live-queries/db-query.js.map +1 -1
  20. package/dist/live-queries/db-query.test.js +32 -23
  21. package/dist/live-queries/db-query.test.js.map +1 -1
  22. package/dist/live-queries/make-ref.d.ts.map +1 -1
  23. package/dist/live-queries/make-ref.js +1 -0
  24. package/dist/live-queries/make-ref.js.map +1 -1
  25. package/dist/mod.d.ts +0 -1
  26. package/dist/mod.d.ts.map +1 -1
  27. package/dist/mod.js +0 -1
  28. package/dist/mod.js.map +1 -1
  29. package/dist/reactive.d.ts.map +1 -1
  30. package/dist/reactive.js +1 -1
  31. package/dist/reactive.js.map +1 -1
  32. package/dist/store/create-store.js +2 -2
  33. package/dist/store/create-store.js.map +1 -1
  34. package/dist/store/store-types.d.ts +5 -5
  35. package/dist/store/store-types.d.ts.map +1 -1
  36. package/dist/store/store.d.ts +27 -26
  37. package/dist/store/store.d.ts.map +1 -1
  38. package/dist/store/store.js +74 -69
  39. package/dist/store/store.js.map +1 -1
  40. package/dist/utils/stack-info.test.js +6 -6
  41. package/dist/utils/tests/fixture.d.ts +54 -207
  42. package/dist/utils/tests/fixture.d.ts.map +1 -1
  43. package/dist/utils/tests/fixture.js +20 -13
  44. package/dist/utils/tests/fixture.js.map +1 -1
  45. package/dist/utils/tests/otel.d.ts.map +1 -1
  46. package/dist/utils/tests/otel.js +8 -3
  47. package/dist/utils/tests/otel.js.map +1 -1
  48. package/package.json +7 -7
  49. package/src/SqliteDbWrapper.ts +4 -1
  50. package/src/live-queries/__snapshots__/db-query.test.ts.snap +9 -9
  51. package/src/live-queries/base-class.ts +8 -25
  52. package/src/live-queries/client-document-get-query.ts +52 -0
  53. package/src/live-queries/computed.ts +4 -18
  54. package/src/live-queries/db-query.test.ts +38 -24
  55. package/src/live-queries/db-query.ts +60 -66
  56. package/src/live-queries/make-ref.ts +2 -0
  57. package/src/mod.ts +0 -2
  58. package/src/reactive.ts +1 -1
  59. package/src/store/create-store.ts +2 -2
  60. package/src/store/store-types.ts +5 -5
  61. package/src/store/store.ts +97 -91
  62. package/src/utils/stack-info.test.ts +6 -6
  63. package/src/utils/tests/fixture.ts +21 -25
  64. package/src/utils/tests/otel.ts +10 -3
  65. package/tmp/pack.tgz +0 -0
  66. package/dist/row-query-utils.d.ts +0 -17
  67. package/dist/row-query-utils.d.ts.map +0 -1
  68. package/dist/row-query-utils.js +0 -34
  69. package/dist/row-query-utils.js.map +0 -1
  70. package/src/row-query-utils.ts +0 -76
@@ -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
- }