@livestore/livestore 0.0.13 → 0.0.15

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
@@ -1,139 +0,0 @@
1
- // Web Worker file for running SQLite in a web worker.
2
- // TODO: create types for these libraries? SQL.js already should have types;
3
- // we just need the types to apply to the fork.
4
- import { shouldNeverHappen } from '@livestore/utils';
5
- import * as Comlink from 'comlink';
6
- import sqlite3InitModule from 'sqlite-esm';
7
- import { casesHandled, sql } from '../../util.js';
8
- import { IDB } from '../utils/idb.js';
9
- // A global variable to hold the database connection.
10
- // let db: SqliteWasm.Database
11
- let db;
12
- let sqlite3;
13
- // TODO get rid of this in favour of a "proper" IDB SQLite backend
14
- let idb;
15
- /** The location where this database backend persists its data */
16
- let persistentDatabaseLocation_;
17
- const configureConnection = () => db.exec(sql `
18
- PRAGMA page_size=8192;
19
- PRAGMA journal_mode=MEMORY;
20
- PRAGMA foreign_keys='ON'; -- we want foreign key constraints to be enforced
21
- `);
22
- /** A full virtual filename in the IDB FS */
23
- const fullyQualifiedFilename = (name) => `${name}.db`;
24
- const initialize = async ({ persistentDatabaseLocation }) => {
25
- persistentDatabaseLocation_ = persistentDatabaseLocation;
26
- sqlite3 = await sqlite3InitModule({
27
- print: (message) => console.log(`[sql-client] ${message}`),
28
- printErr: (message) => console.error(`[sql-client] ${message}`),
29
- });
30
- switch (persistentDatabaseLocation.type) {
31
- case 'opfs': {
32
- try {
33
- db = new sqlite3.oo1.OpfsDb(fullyQualifiedFilename(persistentDatabaseLocation.virtualFilename)); // , 'c'
34
- }
35
- catch (e) {
36
- debugger;
37
- }
38
- break;
39
- }
40
- case 'indexeddb': {
41
- try {
42
- db = new sqlite3.oo1.DB({ filename: ':memory:', flags: 'c' });
43
- idb = new IDB(persistentDatabaseLocation.virtualFilename);
44
- const bytes = await idb.get('db');
45
- if (bytes !== undefined) {
46
- // Based on https://sqlite.org/forum/forumpost/2119230da8ac5357a13b731f462dc76e08621a4a29724f7906d5f35bb8508465
47
- // TODO find cleaner way to do this once possible in sqlite3-wasm
48
- const p = sqlite3.wasm.allocFromTypedArray(bytes);
49
- const _rc = sqlite3.capi.sqlite3_deserialize(db.pointer, 'main', p, bytes.length, bytes.length, 0);
50
- }
51
- }
52
- catch (e) {
53
- debugger;
54
- }
55
- break;
56
- }
57
- case 'filesystem': {
58
- throw new Error('Persisting to native FS is not supported in the web worker backend');
59
- }
60
- case 'volatile-in-memory': {
61
- break;
62
- }
63
- default: {
64
- casesHandled(persistentDatabaseLocation);
65
- }
66
- }
67
- configureConnection();
68
- };
69
- // TODO get rid of this in favour of a "proper" IDB SQLite backend
70
- let idbPersistTimeout;
71
- const executeBulk = (executionItems) => {
72
- let batchItems = [];
73
- while (executionItems.length > 0) {
74
- try {
75
- db.exec('BEGIN TRANSACTION'); // Start the transaction
76
- batchItems = executionItems.splice(0, 50);
77
- for (const { query, bindValues } of batchItems) {
78
- db.exec({
79
- sql: query,
80
- bind: bindValues,
81
- returnValue: 'resultRows',
82
- rowMode: 'object',
83
- });
84
- }
85
- db.exec('COMMIT'); // Commit the transaction
86
- }
87
- catch (error) {
88
- try {
89
- db.exec('ROLLBACK'); // Rollback in case of an error
90
- }
91
- catch (e) {
92
- console.error('Error rolling back transaction', e);
93
- }
94
- shouldNeverHappen(`Error executing query: ${error} \n ${JSON.stringify(batchItems)}`);
95
- }
96
- }
97
- // TODO get rid of this in favour of a "proper" IDB SQLite backend
98
- if (persistentDatabaseLocation_.type === 'indexeddb') {
99
- if (idbPersistTimeout !== undefined) {
100
- clearTimeout(idbPersistTimeout);
101
- }
102
- idbPersistTimeout = setTimeout(() => {
103
- const data = sqlite3.capi.sqlite3_js_db_export(db.pointer);
104
- void idb.put('db', data);
105
- }, 1000);
106
- }
107
- };
108
- const select = (query, bindValues) => {
109
- const resultRows = [];
110
- db.exec({
111
- sql: query,
112
- bind: bindValues,
113
- rowMode: 'object',
114
- resultRows,
115
- });
116
- return { results: resultRows };
117
- };
118
- const getPersistedData = async () => {
119
- // TODO get rid of this in favour of a "proper" IDB SQLite backend
120
- if (persistentDatabaseLocation_.type === 'indexeddb') {
121
- const data = sqlite3.capi.sqlite3_js_db_export(db.pointer);
122
- return Comlink.transfer(data, [data.buffer]);
123
- }
124
- const rootHandle = await navigator.storage.getDirectory();
125
- const fileHandle = await rootHandle.getFileHandle(db.filename);
126
- const file = await fileHandle.getFile();
127
- const buffer = await file.arrayBuffer();
128
- const data = new Uint8Array(buffer);
129
- return Comlink.transfer(data, [data.buffer]);
130
- };
131
- const wrappedWorker = { initialize, executeBulk, select, getPersistedData };
132
- Comlink.expose(wrappedWorker);
133
- // NOTE keep this around for debugging
134
- // db.exec({
135
- // sql: `select * from sqlite_master where name = 'library_tracks'`,
136
- // callback: (_: TODO) => console.log(_),
137
- // rowMode: 'object',
138
- // } as TODO)
139
- //# sourceMappingURL=worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/backends/web-worker/worker.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAEtD,4EAA4E;AAC5E,+CAA+C;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC,OAAO,iBAAiB,MAAM,YAAY,CAAA;AAI1C,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAErC,qDAAqD;AACrD,8BAA8B;AAC9B,IAAI,EAA0B,CAAA;AAE9B,IAAI,OAAiC,CAAA;AAErC,kEAAkE;AAClE,IAAI,GAAoB,CAAA;AAExB,iEAAiE;AACjE,IAAI,2BAAqD,CAAA;AAEzD,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAC/B,EAAE,CAAC,IAAI,CAAC,GAAG,CAAA;;;;GAIV,CAAC,CAAA;AAEJ,4CAA4C;AAC5C,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,CAAA;AAE7D,MAAM,UAAU,GAAG,KAAK,EAAE,EAAE,0BAA0B,EAA4D,EAAE,EAAE;IACpH,2BAA2B,GAAG,0BAA0B,CAAA;IAExD,OAAO,GAAG,MAAM,iBAAiB,CAAC;QAChC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,EAAE,CAAC;QAC1D,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,OAAO,EAAE,CAAC;KAChE,CAAC,CAAA;IAEF,QAAQ,0BAA0B,CAAC,IAAI,EAAE;QACvC,KAAK,MAAM,CAAC,CAAC;YACX,IAAI;gBACF,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC,CAAA,CAAC,QAAQ;aACzG;YAAC,OAAO,CAAC,EAAE;gBACV,QAAQ,CAAA;aACT;YACD,MAAK;SACN;QACD,KAAK,WAAW,CAAC,CAAC;YAChB,IAAI;gBACF,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;gBAC7D,GAAG,GAAG,IAAI,GAAG,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAA;gBAEzD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBAEjC,IAAI,KAAK,KAAK,SAAS,EAAE;oBACvB,+GAA+G;oBAC/G,iEAAiE;oBACjE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;oBACjD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;iBACnG;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,QAAQ,CAAA;aACT;YACD,MAAK;SACN;QACD,KAAK,YAAY,CAAC,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;SACtF;QACD,KAAK,oBAAoB,CAAC,CAAC;YACzB,MAAK;SACN;QACD,OAAO,CAAC,CAAC;YACP,YAAY,CAAC,0BAA0B,CAAC,CAAA;SACzC;KACF;IAED,mBAAmB,EAAE,CAAA;AACvB,CAAC,CAAA;AAED,kEAAkE;AAClE,IAAI,iBAA6C,CAAA;AAIjD,MAAM,WAAW,GAAG,CAAC,cAAoC,EAAQ,EAAE;IACjE,IAAI,UAAU,GAAyB,EAAE,CAAA;IAEzC,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAChC,IAAI;YACF,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA,CAAC,wBAAwB;YAErD,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAEzC,KAAK,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,UAAU,EAAE;gBAC9C,EAAE,CAAC,IAAI,CAAC;oBACN,GAAG,EAAE,KAAK;oBACV,IAAI,EAAE,UAAkB;oBACxB,WAAW,EAAE,YAAY;oBACzB,OAAO,EAAE,QAAQ;iBAClB,CAAC,CAAA;aACH;YAED,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA,CAAC,yBAAyB;SAC5C;QAAC,OAAO,KAAK,EAAE;YACd,IAAI;gBACF,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA,CAAC,+BAA+B;aACpD;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAA;aACnD;YAED,iBAAiB,CAAC,0BAA0B,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;SACtF;KACF;IAED,kEAAkE;IAClE,IAAI,2BAA2B,CAAC,IAAI,KAAK,WAAW,EAAE;QACpD,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACnC,YAAY,CAAC,iBAAiB,CAAC,CAAA;SAChC;QAED,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,OAAO,CAAe,CAAA;YAExE,KAAK,GAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC3B,CAAC,EAAE,IAAI,CAAC,CAAA;KACT;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAAU,KAAa,EAAE,UAAqB,EAAqB,EAAE;IAClF,MAAM,UAAU,GAAQ,EAAE,CAAA;IAE1B,EAAE,CAAC,IAAI,CAAC;QACN,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,QAAQ;QACjB,UAAU;KACH,CAAC,CAAA;IAEV,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;AAChC,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,KAAK,IAAyB,EAAE;IACvD,kEAAkE;IAClE,IAAI,2BAA2B,CAAC,IAAI,KAAK,WAAW,EAAE;QACpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;QAC1D,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;KAC7C;IAED,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAA;IACzD,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;IAC9D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAA;IACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;IACvC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;IAEnC,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9C,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAA;AAI3E,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;AAE7B,sCAAsC;AACtC,YAAY;AACZ,sEAAsE;AACtE,2CAA2C;AAC3C,uBAAuB;AACvB,aAAa"}
@@ -1,3 +0,0 @@
1
- import type { LiveStoreQuery, QueryResult } from '../store.js';
2
- export declare const useGlobalQuery: <Q extends LiveStoreQuery>(query: Q) => QueryResult<Q>;
3
- //# sourceMappingURL=useGlobalQuery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useGlobalQuery.d.ts","sourceRoot":"","sources":["../../src/react/useGlobalQuery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9D,eAAO,MAAM,cAAc,wDA+B1B,CAAA"}
@@ -1,23 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
- import { labelForKey } from '../componentKey.js';
3
- export const useGlobalQuery = (query) => {
4
- // We know the query has a result by the time we use it; so we can synchronously populate a default state
5
- const [value, setValue] = useState(query.results$.result);
6
- // Subscribe to future updates for this query
7
- useEffect(() => {
8
- return query.store.otel.tracer.startActiveSpan(`LiveStore:useGlobalQuery:${labelForKey(query.componentKey)}:${query.label}`, {}, query.store.otel.queriesSpanContext, (span) => {
9
- const cancel = query.store.subscribe(query, (v) => {
10
- // NOTE: we return a reference to the result object within LiveStore;
11
- // this implies that app code must not mutate the results, or else
12
- // there may be weird reactivity bugs.
13
- return setValue(v);
14
- }, undefined, { label: query.label });
15
- return () => {
16
- cancel();
17
- span.end();
18
- };
19
- });
20
- }, [query]);
21
- return value;
22
- };
23
- //# sourceMappingURL=useGlobalQuery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useGlobalQuery.js","sourceRoot":"","sources":["../../src/react/useGlobalQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhD,MAAM,CAAC,MAAM,cAAc,GAAG,CAA2B,KAAQ,EAAkB,EAAE;IACnF,yGAAyG;IACzG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAiB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAEzE,6CAA6C;IAC7C,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAC5C,4BAA4B,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,EAC5E,EAAE,EACF,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,EACnC,CAAC,IAAI,EAAE,EAAE;YACP,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAClC,KAAK,EACL,CAAC,CAAC,EAAE,EAAE;gBACJ,qEAAqE;gBACrE,kEAAkE;gBAClE,sCAAsC;gBACtC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAA;YACpB,CAAC,EACD,SAAS,EACT,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CACvB,CAAA;YACD,OAAO,GAAG,EAAE;gBACV,MAAM,EAAE,CAAA;gBACR,IAAI,CAAC,GAAG,EAAE,CAAA;YACZ,CAAC,CAAA;QACH,CAAC,CACF,CAAA;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
@@ -1,10 +0,0 @@
1
- import type * as otel from '@opentelemetry/api';
2
- import type { ParamsObject } from '../util.js';
3
- import type { SelectResponse, Storage } from './index.js';
4
- export declare abstract class BaseStorage implements Storage {
5
- abstract otelTracer: otel.Tracer;
6
- select: <T = any>(query: string, bindValues?: ParamsObject) => Promise<SelectResponse<T>>;
7
- execute: (query: string, bindValues?: ParamsObject, parentSpan?: otel.Span) => void;
8
- getPersistedData: (parentSpan?: otel.Span) => Promise<Uint8Array>;
9
- }
10
- //# sourceMappingURL=base.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/storage/base.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAK/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEzD,8BAAsB,WAAY,YAAW,OAAO;IAClD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAA;IAEhC,MAAM,mBAA0B,MAAM,eAAe,YAAY,gCAEhE;IAED,OAAO,UAAW,MAAM,eAAe,YAAY,eAAe,KAAK,IAAI,KAAG,IAAI,CAEjF;IAED,gBAAgB,gBAAuB,KAAK,IAAI,KAAG,QAAQ,UAAU,CAAC,CAErE;CACF"}
@@ -1,14 +0,0 @@
1
- export class BaseStorage {
2
- constructor() {
3
- this.select = async (query, bindValues) => {
4
- throw new Error('Method not implemented.');
5
- };
6
- this.execute = (query, bindValues, parentSpan) => {
7
- throw new Error('Method not implemented.');
8
- };
9
- this.getPersistedData = async (parentSpan) => {
10
- throw new Error('Method not implemented.');
11
- };
12
- }
13
- }
14
- //# sourceMappingURL=base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/storage/base.ts"],"names":[],"mappings":"AAWA,MAAM,OAAgB,WAAW;IAAjC;QAGE,WAAM,GAAG,KAAK,EAAW,KAAa,EAAE,UAAyB,EAA8B,EAAE;YAC/F,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC5C,CAAC,CAAA;QAED,YAAO,GAAG,CAAC,KAAa,EAAE,UAAyB,EAAE,UAAsB,EAAQ,EAAE;YACnF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC5C,CAAC,CAAA;QAED,qBAAgB,GAAG,KAAK,EAAE,UAAsB,EAAuB,EAAE;YACvE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC5C,CAAC,CAAA;IACH,CAAC;CAAA"}
@@ -1,37 +0,0 @@
1
- import { useEffect, useState } from 'react'
2
-
3
- import { labelForKey } from '../componentKey.js'
4
- import type { LiveStoreQuery, QueryResult } from '../store.js'
5
-
6
- export const useGlobalQuery = <Q extends LiveStoreQuery>(query: Q): QueryResult<Q> => {
7
- // We know the query has a result by the time we use it; so we can synchronously populate a default state
8
- const [value, setValue] = useState<QueryResult<Q>>(query.results$.result)
9
-
10
- // Subscribe to future updates for this query
11
- useEffect(() => {
12
- return query.store.otel.tracer.startActiveSpan(
13
- `LiveStore:useGlobalQuery:${labelForKey(query.componentKey)}:${query.label}`,
14
- {},
15
- query.store.otel.queriesSpanContext,
16
- (span) => {
17
- const cancel = query.store.subscribe(
18
- query,
19
- (v) => {
20
- // NOTE: we return a reference to the result object within LiveStore;
21
- // this implies that app code must not mutate the results, or else
22
- // there may be weird reactivity bugs.
23
- return setValue(v)
24
- },
25
- undefined,
26
- { label: query.label },
27
- )
28
- return () => {
29
- cancel()
30
- span.end()
31
- }
32
- },
33
- )
34
- }, [query])
35
-
36
- return value
37
- }