@livestore/livestore 0.0.13 → 0.0.16

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 (147) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/__tests__/react/fixture.d.ts.map +1 -1
  3. package/dist/__tests__/react/fixture.js +8 -9
  4. package/dist/__tests__/react/fixture.js.map +1 -1
  5. package/dist/__tests__/reactive.test.js +3 -4
  6. package/dist/__tests__/reactive.test.js.map +1 -1
  7. package/dist/effect/LiveStore.d.ts +3 -9
  8. package/dist/effect/LiveStore.d.ts.map +1 -1
  9. package/dist/effect/LiveStore.js +11 -7
  10. package/dist/effect/LiveStore.js.map +1 -1
  11. package/dist/inMemoryDatabase.d.ts +15 -19
  12. package/dist/inMemoryDatabase.d.ts.map +1 -1
  13. package/dist/inMemoryDatabase.js +2 -9
  14. package/dist/inMemoryDatabase.js.map +1 -1
  15. package/dist/index.d.ts +4 -4
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -3
  18. package/dist/index.js.map +1 -1
  19. package/dist/migrations.d.ts +7 -0
  20. package/dist/migrations.d.ts.map +1 -1
  21. package/dist/migrations.js +18 -13
  22. package/dist/migrations.js.map +1 -1
  23. package/dist/react/LiveStoreProvider.d.ts +1 -3
  24. package/dist/react/LiveStoreProvider.d.ts.map +1 -1
  25. package/dist/react/LiveStoreProvider.js +13 -10
  26. package/dist/react/LiveStoreProvider.js.map +1 -1
  27. package/dist/react/index.d.ts +1 -1
  28. package/dist/react/index.d.ts.map +1 -1
  29. package/dist/react/index.js +1 -1
  30. package/dist/react/index.js.map +1 -1
  31. package/dist/react/useGraphQL.d.ts +3 -1
  32. package/dist/react/useGraphQL.d.ts.map +1 -1
  33. package/dist/react/useGraphQL.js +19 -1
  34. package/dist/react/useGraphQL.js.map +1 -1
  35. package/dist/react/useLiveStoreComponent.d.ts +12 -12
  36. package/dist/react/useLiveStoreComponent.d.ts.map +1 -1
  37. package/dist/react/useLiveStoreComponent.js +23 -7
  38. package/dist/react/useLiveStoreComponent.js.map +1 -1
  39. package/dist/react/useQuery.d.ts +3 -0
  40. package/dist/react/useQuery.d.ts.map +1 -0
  41. package/dist/react/useQuery.js +38 -0
  42. package/dist/react/useQuery.js.map +1 -0
  43. package/dist/reactive.d.ts.map +1 -1
  44. package/dist/reactive.js +3 -3
  45. package/dist/reactive.js.map +1 -1
  46. package/dist/reactiveQueries/base-class.d.ts +6 -3
  47. package/dist/reactiveQueries/base-class.d.ts.map +1 -1
  48. package/dist/reactiveQueries/base-class.js +1 -0
  49. package/dist/reactiveQueries/base-class.js.map +1 -1
  50. package/dist/reactiveQueries/graphql.d.ts +4 -4
  51. package/dist/reactiveQueries/graphql.d.ts.map +1 -1
  52. package/dist/reactiveQueries/graphql.js.map +1 -1
  53. package/dist/reactiveQueries/js.d.ts +2 -2
  54. package/dist/reactiveQueries/js.d.ts.map +1 -1
  55. package/dist/reactiveQueries/js.js.map +1 -1
  56. package/dist/reactiveQueries/sql.d.ts +5 -5
  57. package/dist/reactiveQueries/sql.d.ts.map +1 -1
  58. package/dist/reactiveQueries/sql.js +2 -2
  59. package/dist/reactiveQueries/sql.js.map +1 -1
  60. package/dist/schema.d.ts +0 -2
  61. package/dist/schema.d.ts.map +1 -1
  62. package/dist/schema.js +3 -6
  63. package/dist/schema.js.map +1 -1
  64. package/dist/storage/in-memory/index.d.ts +2 -2
  65. package/dist/storage/in-memory/index.d.ts.map +1 -1
  66. package/dist/storage/in-memory/index.js.map +1 -1
  67. package/dist/storage/index.d.ts +2 -2
  68. package/dist/storage/index.d.ts.map +1 -1
  69. package/dist/storage/tauri/index.d.ts +2 -2
  70. package/dist/storage/tauri/index.d.ts.map +1 -1
  71. package/dist/storage/tauri/index.js.map +1 -1
  72. package/dist/storage/web-worker/index.d.ts +4 -4
  73. package/dist/storage/web-worker/index.d.ts.map +1 -1
  74. package/dist/storage/web-worker/index.js +3 -5
  75. package/dist/storage/web-worker/index.js.map +1 -1
  76. package/dist/storage/web-worker/worker.js +2 -2
  77. package/dist/storage/web-worker/worker.js.map +1 -1
  78. package/dist/store.d.ts +14 -7
  79. package/dist/store.d.ts.map +1 -1
  80. package/dist/store.js +80 -46
  81. package/dist/store.js.map +1 -1
  82. package/dist/util.d.ts +3 -1
  83. package/dist/util.d.ts.map +1 -1
  84. package/dist/util.js +2 -0
  85. package/dist/util.js.map +1 -1
  86. package/package.json +1 -1
  87. package/src/__tests__/react/fixture.tsx +9 -9
  88. package/src/__tests__/reactive.test.ts +3 -4
  89. package/src/effect/LiveStore.ts +14 -18
  90. package/src/inMemoryDatabase.ts +20 -28
  91. package/src/index.ts +10 -4
  92. package/src/migrations.ts +39 -21
  93. package/src/react/LiveStoreProvider.tsx +13 -16
  94. package/src/react/index.ts +1 -1
  95. package/src/react/useGraphQL.ts +28 -2
  96. package/src/react/useLiveStoreComponent.ts +50 -24
  97. package/src/react/useQuery.ts +56 -0
  98. package/src/reactive.ts +6 -4
  99. package/src/reactiveQueries/base-class.ts +9 -3
  100. package/src/reactiveQueries/graphql.ts +4 -4
  101. package/src/reactiveQueries/js.ts +2 -2
  102. package/src/reactiveQueries/sql.ts +6 -6
  103. package/src/schema.ts +2 -5
  104. package/src/storage/in-memory/index.ts +2 -2
  105. package/src/storage/index.ts +2 -2
  106. package/src/storage/tauri/index.ts +2 -2
  107. package/src/storage/web-worker/index.ts +6 -8
  108. package/src/storage/web-worker/worker.ts +2 -2
  109. package/src/store.ts +99 -59
  110. package/src/util.ts +8 -2
  111. package/dist/backends/base.d.ts +0 -13
  112. package/dist/backends/base.d.ts.map +0 -1
  113. package/dist/backends/base.js +0 -53
  114. package/dist/backends/base.js.map +0 -1
  115. package/dist/backends/in-memory/index.d.ts +0 -22
  116. package/dist/backends/in-memory/index.d.ts.map +0 -1
  117. package/dist/backends/in-memory/index.js +0 -45
  118. package/dist/backends/in-memory/index.js.map +0 -1
  119. package/dist/backends/index.d.ts +0 -41
  120. package/dist/backends/index.d.ts.map +0 -1
  121. package/dist/backends/index.js +0 -16
  122. package/dist/backends/index.js.map +0 -1
  123. package/dist/backends/tauri/index.d.ts +0 -21
  124. package/dist/backends/tauri/index.d.ts.map +0 -1
  125. package/dist/backends/tauri/index.js +0 -48
  126. package/dist/backends/tauri/index.js.map +0 -1
  127. package/dist/backends/utils/idb.d.ts +0 -10
  128. package/dist/backends/utils/idb.d.ts.map +0 -1
  129. package/dist/backends/utils/idb.js +0 -58
  130. package/dist/backends/utils/idb.js.map +0 -1
  131. package/dist/backends/web-worker/index.d.ts +0 -26
  132. package/dist/backends/web-worker/index.d.ts.map +0 -1
  133. package/dist/backends/web-worker/index.js +0 -63
  134. package/dist/backends/web-worker/index.js.map +0 -1
  135. package/dist/backends/web-worker/worker.d.ts +0 -17
  136. package/dist/backends/web-worker/worker.d.ts.map +0 -1
  137. package/dist/backends/web-worker/worker.js +0 -139
  138. package/dist/backends/web-worker/worker.js.map +0 -1
  139. package/dist/react/useGlobalQuery.d.ts +0 -3
  140. package/dist/react/useGlobalQuery.d.ts.map +0 -1
  141. package/dist/react/useGlobalQuery.js +0 -23
  142. package/dist/react/useGlobalQuery.js.map +0 -1
  143. package/dist/storage/base.d.ts +0 -10
  144. package/dist/storage/base.d.ts.map +0 -1
  145. package/dist/storage/base.js +0 -14
  146. package/dist/storage/base.js.map +0 -1
  147. package/src/react/useGlobalQuery.ts +0 -37
package/dist/store.js CHANGED
@@ -4,7 +4,6 @@ import * as otel from '@opentelemetry/api';
4
4
  import * as graphql from 'graphql';
5
5
  import { uniqueId } from 'lodash-es';
6
6
  import * as ReactDOM from 'react-dom';
7
- import initSqlite3Wasm from 'sqlite-esm';
8
7
  import { v4 as uuid } from 'uuid';
9
8
  import { tableNameForComponentKey } from './componentKey.js';
10
9
  import { InMemoryDatabase } from './inMemoryDatabase.js';
@@ -15,11 +14,10 @@ import { LiveStoreGraphQLQuery } from './reactiveQueries/graphql.js';
15
14
  import { LiveStoreJSQuery } from './reactiveQueries/js.js';
16
15
  import { LiveStoreSQLQuery } from './reactiveQueries/sql.js';
17
16
  import { componentStateTables } from './schema.js';
18
- import { isPromise, sql } from './util.js';
19
- export const RESET_DB_LOCAL_STORAGE_KEY = 'livestore-reset';
17
+ import { isPromise, prepareBindValues, sql } from './util.js';
20
18
  const globalComponentKey = { _tag: 'singleton', componentName: '__global', id: 'singleton' };
21
19
  export class Store {
22
- constructor({ db, schema, storage, graphQLOptions, otelTracer, otelRootSpanContext, }) {
20
+ constructor({ db, dbProxy, schema, storage, graphQLOptions, otelTracer, otelRootSpanContext, }) {
23
21
  /**
24
22
  * Creates a reactive LiveStore SQL query
25
23
  *
@@ -29,14 +27,24 @@ export class Store {
29
27
  { attributes: { label } }, otelContext, (span) => {
30
28
  const otelContext = otel.trace.setSpan(otel.context.active(), span);
31
29
  const queryString$ = this.graph.makeThunk((get, addDebugInfo) => {
32
- const queryString = genQueryString(get);
33
- addDebugInfo({ _tag: 'js', label: `${label}:queryString`, query: queryString });
34
- return queryString;
30
+ if (typeof genQueryString === 'function') {
31
+ const getAtom = (atom) => {
32
+ if (atom._tag === 'thunk' || atom._tag === 'ref')
33
+ return get(atom);
34
+ return get(atom.results$);
35
+ };
36
+ const queryString = genQueryString(getAtom);
37
+ addDebugInfo({ _tag: 'js', label: `${label}:queryString`, query: queryString });
38
+ return queryString;
39
+ }
40
+ else {
41
+ return genQueryString;
42
+ }
35
43
  }, { label: `${label}:queryString`, meta: { liveStoreThunkType: 'sqlQueryString' } }, otelContext);
36
44
  label = label ?? queryString$.result;
37
45
  span.updateName(`querySQL:${label}`);
38
46
  const queryLabel = `${label}:results` + (this.temporaryQueries ? ':temp' : '');
39
- const results$ = this.graph.makeThunk((get, addDebugInfo) => this.otel.tracer.startActiveSpan('sql', // NOTE span name will be overridden further down
47
+ const results$ = this.graph.makeThunk((get, addDebugInfo) => this.otel.tracer.startActiveSpan('sql:', // NOTE span name will be overridden further down
40
48
  {}, otelContext, (span) => {
41
49
  try {
42
50
  const otelContext = otel.trace.setSpan(otel.context.active(), span);
@@ -48,7 +56,11 @@ export class Store {
48
56
  const sqlString = get(queryString$);
49
57
  span.setAttribute('sql.query', sqlString);
50
58
  span.updateName(`sql:${sqlString.slice(0, 50)}`);
51
- const results = this.inMemoryDB.select(sqlString, { queriedTables, bindValues, otelContext });
59
+ const results = this.inMemoryDB.select(sqlString, {
60
+ queriedTables,
61
+ bindValues: bindValues ? prepareBindValues(bindValues, sqlString) : undefined,
62
+ otelContext,
63
+ });
52
64
  span.setAttribute('sql.rowsCount', results.length);
53
65
  addDebugInfo({ _tag: 'sql', label: label ?? '', query: sqlString });
54
66
  return results;
@@ -77,8 +89,13 @@ export class Store {
77
89
  const otelContext = otel.trace.setSpan(otel.context.active(), span);
78
90
  const queryLabel = `${label}:results` + (this.temporaryQueries ? ':temp' : '');
79
91
  const results$ = this.graph.makeThunk((get, addDebugInfo) => {
92
+ const getAtom = (atom) => {
93
+ if (atom._tag === 'thunk' || atom._tag === 'ref')
94
+ return get(atom);
95
+ return get(atom.results$);
96
+ };
80
97
  addDebugInfo({ _tag: 'js', label, query: genResults.toString() });
81
- return genResults(get);
98
+ return genResults(getAtom);
82
99
  }, { label: queryLabel, meta: { liveStoreThunkType: 'jsResults' } }, otelContext);
83
100
  const query = new LiveStoreJSQuery({
84
101
  label,
@@ -103,7 +120,19 @@ export class Store {
103
120
  }
104
121
  const labelWithDefault = label ?? graphql.getOperationAST(document)?.name?.value ?? 'graphql';
105
122
  span.updateName(`queryGraphQL:${labelWithDefault}`);
106
- const variableValues$ = this.graph.makeThunk(genVariableValues, { label: `${labelWithDefault}:variableValues`, meta: { liveStoreThunkType: 'graphqlVariableValues' } }, otelContext);
123
+ const variableValues$ = this.graph.makeThunk((get) => {
124
+ if (typeof genVariableValues === 'function') {
125
+ const getAtom = (atom) => {
126
+ if (atom._tag === 'thunk' || atom._tag === 'ref')
127
+ return get(atom);
128
+ return get(atom.results$);
129
+ };
130
+ return genVariableValues(getAtom);
131
+ }
132
+ else {
133
+ return genVariableValues;
134
+ }
135
+ }, { label: `${labelWithDefault}:variableValues`, meta: { liveStoreThunkType: 'graphqlVariableValues' } }, otelContext);
107
136
  const resultsLabel = `${labelWithDefault}:results` + (this.temporaryQueries ? ':temp' : '');
108
137
  const results$ = this.graph.makeThunk((get, addDebugInfo) => {
109
138
  const variableValues = get(variableValues$);
@@ -361,6 +390,12 @@ export class Store {
361
390
  span.end();
362
391
  });
363
392
  };
393
+ // TODO get rid of this as part of new query definition approach https://www.notion.so/schickling/New-query-definition-approach-1097a78ef0e9495bac25f90417374756?pvs=4
394
+ this.runOnce = (queryDef) => {
395
+ return this.inTempQueryContext(() => {
396
+ return queryDef(this).results$.result;
397
+ });
398
+ };
364
399
  /**
365
400
  * Apply an event to the store.
366
401
  * Returns the tables that were affected by the event.
@@ -404,13 +439,13 @@ export class Store {
404
439
  // Synchronously apply the event to the in-memory database
405
440
  // const { durationMs } = this.inMemoryDB.applyEvent(eventWithId, actionDefinition, otelContext)
406
441
  const { statement, bindValues } = eventToSql(eventWithId, actionDefinition);
407
- const { durationMs } = this.inMemoryDB.execute(statement.sql, bindValues, statement.writeTables, {
442
+ const { durationMs } = this.inMemoryDB.execute(statement.sql, prepareBindValues(bindValues, statement.sql), statement.writeTables, {
408
443
  otelContext,
409
444
  });
410
445
  // Asynchronously apply the event to a persistent storage (we're not awaiting this promise here)
411
446
  if (this.storage !== undefined) {
412
447
  // this.storage.applyEvent(eventWithId, actionDefinition, span)
413
- this.storage.execute(statement.sql, bindValues, span);
448
+ this.storage.execute(statement.sql, prepareBindValues(bindValues, statement.sql), span);
414
449
  }
415
450
  // Uncomment to print a list of queries currently registered on the store
416
451
  // console.log(JSON.parse(JSON.stringify([...this.queries].map((q) => `${labelForKey(q.componentKey)}/${q.label}`))))
@@ -428,13 +463,14 @@ export class Store {
428
463
  * all app writes should go through applyEvent.
429
464
  */
430
465
  this.execute = async (query, params = {}, writeTables) => {
431
- this.inMemoryDB.execute(query, params, writeTables);
466
+ this.inMemoryDB.execute(query, prepareBindValues(params, query), writeTables);
432
467
  if (this.storage !== undefined) {
433
468
  const parentSpan = otel.trace.getSpan(otel.context.active());
434
- this.storage.execute(query, params, parentSpan);
469
+ this.storage.execute(query, prepareBindValues(params, query), parentSpan);
435
470
  }
436
471
  };
437
472
  this.inMemoryDB = db;
473
+ this._proxyDb = dbProxy;
438
474
  this.graph = new ReactiveGraph({
439
475
  // TODO move this into React module
440
476
  // Do all our updates inside a single React setState batch to avoid multiple UI re-renders
@@ -485,40 +521,29 @@ Store.createStore = (storeOptions, parentSpan) => {
485
521
  });
486
522
  };
487
523
  /** Create a new LiveStore Store */
488
- export const createStore = async ({ schema, loadStorage, graphQLOptions, otelTracer = makeNoopTracer(), otelRootSpanContext = otel.context.active(), boot, }) => {
524
+ export const createStore = async ({ schema, loadStorage, graphQLOptions, otelTracer = makeNoopTracer(), otelRootSpanContext = otel.context.active(), boot, sqlite3, }) => {
489
525
  return otelTracer.startActiveSpan('createStore', {}, otelRootSpanContext, async (span) => {
490
526
  try {
491
527
  const otelContext = otel.trace.setSpan(otel.context.active(), span);
492
- const loadStorageAndPersistedData = async () => {
493
- const storage = await otelTracer.startActiveSpan('storage:load', {}, otelContext, async (span) => {
494
- try {
495
- const init = await loadStorage();
496
- const parentSpan = otel.trace.getSpan(otel.context.active()) ?? makeNoopSpan();
497
- return init({ otelTracer, parentSpan });
498
- }
499
- finally {
500
- span.end();
501
- }
502
- });
503
- const persistedData = await otelTracer.startActiveSpan('storage:getPersistedData', {}, otelContext, async (span) => {
504
- try {
505
- return await storage.getPersistedData(span);
506
- }
507
- finally {
508
- span.end();
509
- }
510
- });
511
- return { storage, persistedData };
512
- };
513
- const loadSqlite3 = () => initSqlite3Wasm({
514
- // Required to load the wasm binary asynchronously. Of course, you can host it wherever you want
515
- // You can omit locateFile completely when running in node
516
- // locateFile: () => `/sql-wasm.wasm`,
517
- print: (message) => console.log(`[livestore sqlite] ${message}`),
518
- printErr: (message) => console.error(`[livestore sqlite] ${message}`),
528
+ const storage = await otelTracer.startActiveSpan('storage:load', {}, otelContext, async (span) => {
529
+ try {
530
+ const init = await loadStorage();
531
+ const parentSpan = otel.trace.getSpan(otel.context.active()) ?? makeNoopSpan();
532
+ return init({ otelTracer, parentSpan });
533
+ }
534
+ finally {
535
+ span.end();
536
+ }
537
+ });
538
+ const persistedData = await otelTracer.startActiveSpan('storage:getPersistedData', {}, otelContext, async (span) => {
539
+ try {
540
+ return await storage.getPersistedData(span);
541
+ }
542
+ finally {
543
+ span.end();
544
+ }
519
545
  });
520
- const [{ storage, persistedData }, sqlite3] = await Promise.all([loadStorageAndPersistedData(), loadSqlite3()]);
521
- const db = InMemoryDatabase.load(persistedData, otelTracer, otelRootSpanContext, sqlite3);
546
+ const db = InMemoryDatabase.load({ data: persistedData, otelTracer, otelRootSpanContext, sqlite3 });
522
547
  // Proxy to `db` that also mirrors `execute` calls to `storage`
523
548
  const dbProxy = new Proxy(db, {
524
549
  get: (db, prop, receiver) => {
@@ -529,6 +554,15 @@ export const createStore = async ({ schema, loadStorage, graphQLOptions, otelTra
529
554
  };
530
555
  return execute;
531
556
  }
557
+ else if (prop === 'select') {
558
+ // NOTE we're even proxying `select` calls here as some apps (e.g. Overtone) currently rely on this
559
+ // TODO remove this once we've migrated all apps to use `execute` instead of `select`
560
+ const select = (query, options = {}) => {
561
+ storage.execute(query, options.bindValues);
562
+ return db.select(query, options);
563
+ };
564
+ return select;
565
+ }
532
566
  else {
533
567
  return Reflect.get(db, prop, receiver);
534
568
  }
@@ -553,7 +587,7 @@ export const createStore = async ({ schema, loadStorage, graphQLOptions, otelTra
553
587
  // TODO: we can't apply the schema at this point, we've already loaded persisted data!
554
588
  // Think about what to do about this case.
555
589
  // await applySchema(db, schema)
556
- return Store.createStore({ db, schema, storage, graphQLOptions, otelTracer, otelRootSpanContext }, span);
590
+ return Store.createStore({ db, dbProxy, schema, storage, graphQLOptions, otelTracer, otelRootSpanContext }, span);
557
591
  }
558
592
  finally {
559
593
  span.end();
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/dist/util.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  /// <reference lib="es2022" />
2
+ import type { Brand } from '@livestore/utils/effect';
2
3
  export type ParamsObject = Record<string, SqlValue>;
3
4
  export type SqlValue = string | number | Uint8Array | null;
4
5
  export type Bindable = SqlValue[] | ParamsObject;
6
+ export type PreparedBindValues = Brand.Branded<Bindable, 'PreparedBindValues'>;
5
7
  /**
6
8
  * This is a tag function for tagged literals.
7
9
  * it lets us get syntax highlighting on SQL queries in VSCode, but
@@ -15,7 +17,7 @@ export declare const sql: (template: TemplateStringsArray, ...args: unknown[]) =
15
17
  /* because rusqlite doesn't allow unused named params
16
18
  /* TODO: Search for unused params via proper parsing, not string search
17
19
  **/
18
- export declare const prepareBindValues: (values: ParamsObject, statement: string) => ParamsObject;
20
+ export declare const prepareBindValues: (values: Bindable, statement: string) => PreparedBindValues;
19
21
  /**
20
22
  * Use this to make assertion at end of if-else chain that all members of a
21
23
  * union have been accounted for.
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";AAEA,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AACnD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAAA;AAE1D,MAAM,MAAM,QAAQ,GAAG,QAAQ,EAAE,GAAG,YAAY,CAAA;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,GAAG,aAAc,oBAAoB,WAAW,OAAO,EAAE,KAAG,MAMxE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,WAAY,YAAY,aAAa,MAAM,KAAG,YAS3E,CAAA;AAED;;;GAGG;AAEH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAE5C;AAED,eAAO,MAAM,cAAc,UAAW,GAAG,KAAG,MAa3C,CAAA;AAED,eAAO,MAAM,SAAS,UAAW,GAAG,8BAAiE,CAAA"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAEpD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AACnD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAAA;AAE1D,MAAM,MAAM,QAAQ,GAAG,QAAQ,EAAE,GAAG,YAAY,CAAA;AAEhD,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAA;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,GAAG,aAAc,oBAAoB,WAAW,OAAO,EAAE,KAAG,MAMxE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,WAAY,QAAQ,aAAa,MAAM,KAAG,kBAWvE,CAAA;AAED;;;GAGG;AAEH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAE5C;AAED,eAAO,MAAM,cAAc,UAAW,GAAG,KAAG,MAa3C,CAAA;AAED,eAAO,MAAM,SAAS,UAAW,GAAG,8BAAiE,CAAA"}
package/dist/util.js CHANGED
@@ -19,6 +19,8 @@ export const sql = (template, ...args) => {
19
19
  /* TODO: Search for unused params via proper parsing, not string search
20
20
  **/
21
21
  export const prepareBindValues = (values, statement) => {
22
+ if (Array.isArray(values))
23
+ return values;
22
24
  const result = {};
23
25
  for (const [key, value] of Object.entries(values)) {
24
26
  if (statement.includes(key)) {
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAO9B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,QAA8B,EAAE,GAAG,IAAe,EAAU,EAAE;IAChF,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;QACrC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;KACjC;IACD,OAAO,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9B,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAoB,EAAE,SAAiB,EAAgB,EAAE;IACzF,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACjD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC3B,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,CAAA;SAC1B;KACF;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;;GAGG;AACH,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAAC,CAAQ;IACnC,MAAM,IAAI,KAAK,CAAC,qCAAqC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAU,EAAU,EAAE;IACnD,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9F,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1C,IAAI,GAAG,KAAK,iBAAiB;QAAE,OAAO,GAAG,GAAG,QAAQ,CAAA;IAEpD,IAAI;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;KACpD;IAAC,OAAO,CAAM,EAAE;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAElB,OAAO,8BAA8B,GAAG,CAAC,CAAA;KAC1C;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAU,EAA6B,EAAE,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,UAAU,CAAA"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAW9B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,QAA8B,EAAE,GAAG,IAAe,EAAU,EAAE;IAChF,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;QACrC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;KACjC;IACD,OAAO,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9B,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAgB,EAAE,SAAiB,EAAsB,EAAE;IAC3F,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAA4B,CAAA;IAE9D,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACjD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC3B,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,CAAA;SAC1B;KACF;IAED,OAAO,MAA4B,CAAA;AACrC,CAAC,CAAA;AAED;;;GAGG;AACH,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAAC,CAAQ;IACnC,MAAM,IAAI,KAAK,CAAC,qCAAqC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAU,EAAU,EAAE;IACnD,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9F,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1C,IAAI,GAAG,KAAK,iBAAiB;QAAE,OAAO,GAAG,GAAG,QAAQ,CAAA;IAEpD,IAAI;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;KACpD;IAAC,OAAO,CAAM,EAAE;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAElB,OAAO,8BAA8B,GAAG,CAAC,CAAA;KAC1C;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAU,EAA6B,EAAE,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,UAAU,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livestore/livestore",
3
- "version": "0.0.13",
3
+ "version": "0.0.16",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -1,5 +1,5 @@
1
- import { mapObjectValues } from '@livestore/utils'
2
1
  import React from 'react'
2
+ import initSqlite3Wasm from 'sqlite-esm'
3
3
 
4
4
  import * as LiveStore from '../../index.js'
5
5
  import { sql } from '../../index.js'
@@ -63,19 +63,19 @@ export const makeTodoMvc = async () => {
63
63
  username: LiveStore.DbSchema.text({ default: '' }),
64
64
  })
65
65
 
66
+ const sqlite3 = await initSqlite3Wasm({
67
+ print: (message) => console.log(`[livestore sqlite] ${message}`),
68
+ printErr: (message) => console.error(`[livestore sqlite] ${message}`),
69
+ })
70
+
66
71
  const store = await LiveStore.createStore({
67
72
  schema,
68
73
  loadStorage: () => InMemoryStorage.load(),
69
- boot: async (storage) => {
70
- storage.execute(sql`INSERT INTO app (newTodoText, filter) VALUES ('', 'all');`)
71
- // NOTE we can't insert into components__UserInfo yet because the table doesn't exist yet
72
- // storage.execute(sql`INSERT INTO components__UserInfo (id, username) VALUES ('u1', 'username_u1');`)
73
- // storage.execute(sql`INSERT INTO components__UserInfo (id, username) VALUES ('u2', 'username_u2');`)
74
- },
74
+ boot: (db) => db.execute(sql`INSERT OR IGNORE INTO app (id, newTodoText, filter) VALUES ('static', '', 'all');`),
75
+ sqlite3,
75
76
  })
76
77
 
77
- const globalQueries = mapObjectValues(globalQueryDefs, (_, queryDef) => queryDef(store))
78
- const storeContext: LiveStore.LiveStoreContext = { store, globalQueries }
78
+ const storeContext: LiveStore.LiveStoreContext = { store }
79
79
 
80
80
  const wrapper = ({ children }: any) => (
81
81
  <LiveStoreReact.LiveStoreContext.Provider value={storeContext}>{children}</LiveStoreReact.LiveStoreContext.Provider>
@@ -226,8 +226,7 @@ describe('a diamond shaped graph', () => {
226
226
  })
227
227
  })
228
228
 
229
- // TODO handle `undefined` in the graph
230
- describe.todo('a trivial graph with undefined', () => {
229
+ describe('a trivial graph with undefined', () => {
231
230
  const makeGraph = () => {
232
231
  const graph = new ReactiveGraph({ otelTracer: makeNoopTracer() })
233
232
  const a = graph.makeRef(undefined)
@@ -260,7 +259,7 @@ describe.todo('a trivial graph with undefined', () => {
260
259
 
261
260
  it('has the right initial values', () => {
262
261
  const { c, e } = makeGraph()
263
- expect(c.result).toBe(3)
264
- expect(e.result).toBe(6)
262
+ expect(c.result).toBe(2)
263
+ expect(e.result).toBe(5)
265
264
  })
266
265
  })
@@ -2,7 +2,7 @@ import type { Scope } from '@livestore/utils/effect'
2
2
  import { Context, Deferred, Duration, Effect, Layer, OtelTracer, pipe, Runtime } from '@livestore/utils/effect'
3
3
  import * as otel from '@opentelemetry/api'
4
4
  import type { GraphQLSchema } from 'graphql'
5
- import { mapValues } from 'lodash-es'
5
+ import initSqlite3Wasm from 'sqlite-esm'
6
6
 
7
7
  import type { InMemoryDatabase } from '../inMemoryDatabase.js'
8
8
  import type { Schema } from '../schema.js'
@@ -10,18 +10,22 @@ import type { StorageInit } from '../storage/index.js'
10
10
  import type { BaseGraphQLContext, GraphQLOptions, LiveStoreQuery, Store } from '../store.js'
11
11
  import { createStore } from '../store.js'
12
12
 
13
+ // NOTE we're starting to initialize the sqlite wasm binary here (already before calling `createStore`),
14
+ // so that it's ready when we need it
15
+ const sqlite3Promise = initSqlite3Wasm({
16
+ print: (message) => console.log(`[livestore sqlite] ${message}`),
17
+ printErr: (message) => console.error(`[livestore sqlite] ${message}`),
18
+ })
19
+
13
20
  // TODO get rid of `LiveStoreContext` wrapper and only expose the `Store` directly
14
21
  export type LiveStoreContext = {
15
- store: Store<any>
16
- globalQueries: LiveStoreQueryTypes
22
+ store: Store
17
23
  }
18
24
 
19
- export type QueryDefinition = (store: Store<any>) => LiveStoreQuery
20
- export type GlobalQueryDefs = { [key: string]: QueryDefinition }
25
+ export type QueryDefinition = (store: Store) => LiveStoreQuery
21
26
 
22
27
  export type LiveStoreCreateStoreOptions<GraphQLContext extends BaseGraphQLContext> = {
23
28
  schema: Schema
24
- globalQueryDefs: GlobalQueryDefs
25
29
  loadStorage: () => StorageInit | Promise<StorageInit>
26
30
  graphQLOptions?: GraphQLOptions<GraphQLContext>
27
31
  otelTracer?: otel.Tracer
@@ -40,7 +44,6 @@ export const DeferredStoreContext = Context.Tag<DeferredStoreContext>(
40
44
 
41
45
  export type LiveStoreContextProps<GraphQLContext extends BaseGraphQLContext> = {
42
46
  schema: Schema
43
- globalQueryDefs?: Effect.Effect<never, never, GlobalQueryDefs>
44
47
  loadStorage: () => StorageInit | Promise<StorageInit>
45
48
  graphQLOptions?: {
46
49
  schema: Effect.Effect<otel.Tracer, never, GraphQLSchema>
@@ -60,7 +63,6 @@ export const LiveStoreContextLayer = <GraphQLContext extends BaseGraphQLContext>
60
63
  export const LiveStoreContextDeferred = Layer.effect(DeferredStoreContext, Deferred.make<never, LiveStoreContext>())
61
64
 
62
65
  export const makeLiveStoreContext = <GraphQLContext extends BaseGraphQLContext>({
63
- globalQueryDefs,
64
66
  schema,
65
67
  loadStorage,
66
68
  graphQLOptions: graphQLOptions_,
@@ -89,6 +91,8 @@ export const makeLiveStoreContext = <GraphQLContext extends BaseGraphQLContext>(
89
91
  boot_(db).pipe(Effect.withSpan('boot'), Effect.tapCauseLogPretty, Runtime.runPromise(runtime))
90
92
  : undefined
91
93
 
94
+ const sqlite3 = yield* $(Effect.promise(() => sqlite3Promise))
95
+
92
96
  const store = yield* $(
93
97
  Effect.tryPromise(() =>
94
98
  createStore({
@@ -98,6 +102,7 @@ export const makeLiveStoreContext = <GraphQLContext extends BaseGraphQLContext>(
98
102
  otelTracer,
99
103
  otelRootSpanContext,
100
104
  boot,
105
+ sqlite3,
101
106
  }),
102
107
  ),
103
108
  Effect.acquireRelease((store) => Effect.sync(() => store.destroy())),
@@ -105,16 +110,7 @@ export const makeLiveStoreContext = <GraphQLContext extends BaseGraphQLContext>(
105
110
 
106
111
  window.__debugLiveStore = store
107
112
 
108
- // TODO remove global queries concept
109
- const globalQueries = yield* $(
110
- globalQueryDefs ?? Effect.succeed({} as GlobalQueryDefs),
111
- Effect.map((defs) => mapValues(defs, (queryDef) => queryDef(store))),
112
- Effect.withSpan('LiveStore:makeGlobalQueries', {
113
- parent: OtelTracer.makeExternalSpan(otel.trace.getSpanContext(store.otel.queriesSpanContext)!),
114
- }),
115
- )
116
-
117
- return { store, globalQueries }
113
+ return { store }
118
114
  }),
119
115
  Effect.tap((storeCtx) => Effect.flatMap(DeferredStoreContext, (def) => Deferred.succeed(def, storeCtx))),
120
116
  Effect.timeoutFail({