@livestore/livestore 0.0.37 → 0.0.39-dev.2

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 (117) hide show
  1. package/README.md +3 -4
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/__tests__/react/fixture.d.ts +97 -3
  4. package/dist/__tests__/react/fixture.d.ts.map +1 -1
  5. package/dist/__tests__/react/fixture.js +10 -7
  6. package/dist/__tests__/react/fixture.js.map +1 -1
  7. package/dist/__tests__/react/useQuery.test.js +12 -23
  8. package/dist/__tests__/react/useQuery.test.js.map +1 -1
  9. package/dist/__tests__/react/useRow.test.js +4 -4
  10. package/dist/__tests__/react/useRow.test.js.map +1 -1
  11. package/dist/__tests__/reactiveQueries/sql.test.js +32 -35
  12. package/dist/__tests__/reactiveQueries/sql.test.js.map +1 -1
  13. package/dist/effect/LiveStore.d.ts +3 -2
  14. package/dist/effect/LiveStore.d.ts.map +1 -1
  15. package/dist/effect/LiveStore.js.map +1 -1
  16. package/dist/index.d.ts +6 -6
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +3 -3
  19. package/dist/index.js.map +1 -1
  20. package/dist/migrations.js +2 -2
  21. package/dist/migrations.js.map +1 -1
  22. package/dist/mutations.d.ts +3 -1
  23. package/dist/mutations.d.ts.map +1 -1
  24. package/dist/mutations.js +2 -2
  25. package/dist/mutations.js.map +1 -1
  26. package/dist/react/LiveStoreContext.d.ts +2 -2
  27. package/dist/react/LiveStoreContext.d.ts.map +1 -1
  28. package/dist/react/LiveStoreContext.js.map +1 -1
  29. package/dist/react/index.d.ts +1 -0
  30. package/dist/react/index.d.ts.map +1 -1
  31. package/dist/react/index.js +1 -0
  32. package/dist/react/index.js.map +1 -1
  33. package/dist/react/useAtom.d.ts +5 -0
  34. package/dist/react/useAtom.d.ts.map +1 -0
  35. package/dist/react/useAtom.js +16 -0
  36. package/dist/react/useAtom.js.map +1 -0
  37. package/dist/react/useQuery.d.ts +3 -3
  38. package/dist/react/useQuery.d.ts.map +1 -1
  39. package/dist/react/useQuery.js.map +1 -1
  40. package/dist/react/useRow.d.ts +5 -5
  41. package/dist/react/useRow.d.ts.map +1 -1
  42. package/dist/react/useRow.js +16 -30
  43. package/dist/react/useRow.js.map +1 -1
  44. package/dist/react/useTemporaryQuery.d.ts +3 -3
  45. package/dist/react/useTemporaryQuery.d.ts.map +1 -1
  46. package/dist/react/useTemporaryQuery.js.map +1 -1
  47. package/dist/reactiveQueries/base-class.d.ts +12 -4
  48. package/dist/reactiveQueries/base-class.d.ts.map +1 -1
  49. package/dist/reactiveQueries/base-class.js +1 -0
  50. package/dist/reactiveQueries/base-class.js.map +1 -1
  51. package/dist/reactiveQueries/graphql.d.ts +5 -5
  52. package/dist/reactiveQueries/graphql.d.ts.map +1 -1
  53. package/dist/reactiveQueries/graphql.js +11 -10
  54. package/dist/reactiveQueries/graphql.js.map +1 -1
  55. package/dist/reactiveQueries/js.d.ts +10 -7
  56. package/dist/reactiveQueries/js.d.ts.map +1 -1
  57. package/dist/reactiveQueries/js.js +19 -11
  58. package/dist/reactiveQueries/js.js.map +1 -1
  59. package/dist/reactiveQueries/sql.d.ts +21 -15
  60. package/dist/reactiveQueries/sql.d.ts.map +1 -1
  61. package/dist/reactiveQueries/sql.js +50 -28
  62. package/dist/reactiveQueries/sql.js.map +1 -1
  63. package/dist/row-query.d.ts +22 -21
  64. package/dist/row-query.d.ts.map +1 -1
  65. package/dist/row-query.js +62 -47
  66. package/dist/row-query.js.map +1 -1
  67. package/dist/schema/index.d.ts +3 -2
  68. package/dist/schema/index.d.ts.map +1 -1
  69. package/dist/schema/index.js +3 -2
  70. package/dist/schema/index.js.map +1 -1
  71. package/dist/schema/parse-utils.d.ts +6 -0
  72. package/dist/schema/parse-utils.d.ts.map +1 -0
  73. package/dist/schema/parse-utils.js +59 -0
  74. package/dist/schema/parse-utils.js.map +1 -0
  75. package/dist/schema/system-tables.d.ts +24 -8
  76. package/dist/schema/system-tables.d.ts.map +1 -1
  77. package/dist/schema/table-def.d.ts +32 -7
  78. package/dist/schema/table-def.d.ts.map +1 -1
  79. package/dist/schema/table-def.js +18 -6
  80. package/dist/schema/table-def.js.map +1 -1
  81. package/dist/store.d.ts +4 -8
  82. package/dist/store.d.ts.map +1 -1
  83. package/dist/store.js +7 -8
  84. package/dist/store.js.map +1 -1
  85. package/dist/update-path.d.ts +52 -0
  86. package/dist/update-path.d.ts.map +1 -0
  87. package/dist/update-path.js +33 -0
  88. package/dist/update-path.js.map +1 -0
  89. package/dist/utils/util.d.ts +1 -0
  90. package/dist/utils/util.d.ts.map +1 -1
  91. package/dist/utils/util.js.map +1 -1
  92. package/package.json +4 -4
  93. package/src/__tests__/react/fixture.tsx +13 -7
  94. package/src/__tests__/react/useQuery.test.tsx +12 -29
  95. package/src/__tests__/react/useRow.test.tsx +5 -7
  96. package/src/__tests__/reactiveQueries/sql.test.ts +33 -35
  97. package/src/effect/LiveStore.ts +3 -2
  98. package/src/index.ts +6 -6
  99. package/src/migrations.ts +2 -2
  100. package/src/mutations.ts +8 -3
  101. package/src/react/LiveStoreContext.ts +3 -2
  102. package/src/react/index.ts +1 -0
  103. package/src/react/useAtom.ts +25 -0
  104. package/src/react/useQuery.ts +7 -7
  105. package/src/react/useRow.ts +27 -47
  106. package/src/react/useTemporaryQuery.ts +4 -6
  107. package/src/reactiveQueries/base-class.ts +18 -4
  108. package/src/reactiveQueries/graphql.ts +16 -14
  109. package/src/reactiveQueries/js.ts +36 -15
  110. package/src/reactiveQueries/sql.ts +77 -37
  111. package/src/row-query.ts +155 -113
  112. package/src/schema/index.ts +5 -4
  113. package/src/schema/parse-utils.ts +84 -0
  114. package/src/schema/table-def.ts +80 -12
  115. package/src/store.ts +14 -29
  116. package/src/update-path.ts +102 -0
  117. package/src/utils/util.ts +2 -0
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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"}
@@ -0,0 +1,52 @@
1
+ import { Schema } from '@livestore/utils/effect';
2
+ import type { FromTable, TableDef } from './schema/table-def.js';
3
+ /**
4
+ * A description of a path to update a value either ...
5
+ * - as a whole row
6
+ * - or a single column value
7
+ * - or a sub value in a JSON column
8
+ */
9
+ export type UpdatePathDesc<TTableDef extends TableDef = TableDef> = UpdatePathDescNone | UpdatePathDescRow<TTableDef> | UpdatePathDescColJsonValue<TTableDef, GetJsonColumn<TTableDef>> | UpdatePathDescCol<TTableDef, keyof TTableDef['sqliteDef']['columns']>;
10
+ export type UpdatePathDescNone = {
11
+ _tag: 'None';
12
+ };
13
+ export type UpdatePathDescRow<TTableDef extends TableDef> = {
14
+ _tag: 'Row';
15
+ table: TTableDef;
16
+ id: string;
17
+ };
18
+ export type UpdatePathDescCol<TTableDef extends TableDef, TColName extends keyof TTableDef['sqliteDef']['columns']> = {
19
+ _tag: 'Col';
20
+ table: TTableDef;
21
+ id: string;
22
+ column: TColName;
23
+ };
24
+ export type UpdatePathDescColJsonValue<TTableDef extends TableDef, TColName extends GetJsonColumn<TTableDef>> = {
25
+ _tag: 'ColJsonValue';
26
+ table: TTableDef;
27
+ id: string;
28
+ column: TColName;
29
+ /**
30
+ * example: `$.tabs[3].items[2]` (`$` referring to the column value)
31
+ */
32
+ jsonPath: string;
33
+ };
34
+ type GetJsonColumn<TTableDef extends TableDef> = keyof {
35
+ [ColName in keyof TTableDef['sqliteDef']['columns'] as TTableDef['sqliteDef']['columns'][ColName]['columnType'] extends 'text' ? ColName : never]: {};
36
+ };
37
+ export type UpdateValueForPath<TPath extends UpdatePathDesc> = TPath extends {
38
+ _tag: 'Row';
39
+ } ? Partial<FromTable.RowDecodedAll<TPath['table']>> : TPath extends {
40
+ _tag: 'Col';
41
+ } ? Schema.Schema.To<TPath['table']['sqliteDef']['columns'][TPath['column']]['schema']> : TPath extends {
42
+ _tag: 'ColJsonValue';
43
+ } ? {
44
+ TODO: true;
45
+ } : never;
46
+ export declare const storeEventForUpdatePath: <TPath extends UpdatePathDesc<TableDef>>(updatePath: TPath, value: UpdateValueForPath<TPath>) => StoreEvent;
47
+ type StoreEvent = {
48
+ eventType: string;
49
+ args: any;
50
+ };
51
+ export {};
52
+ //# sourceMappingURL=update-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-path.d.ts","sourceRoot":"","sources":["../src/update-path.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhE;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CAAC,SAAS,SAAS,QAAQ,GAAG,QAAQ,IAC5D,kBAAkB,GAClB,iBAAiB,CAAC,SAAS,CAAC,GAC5B,0BAA0B,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,GAC/D,iBAAiB,CAAC,SAAS,EAAE,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;AAEzE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,iBAAiB,CAAC,SAAS,SAAS,QAAQ,IAAI;IAC1D,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,iBAAiB,CAAC,SAAS,SAAS,QAAQ,EAAE,QAAQ,SAAS,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI;IACpH,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,0BAA0B,CAAC,SAAS,SAAS,QAAQ,EAAE,QAAQ,SAAS,aAAa,CAAC,SAAS,CAAC,IAAI;IAC9G,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,QAAQ,CAAA;IAChB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,aAAa,CAAC,SAAS,SAAS,QAAQ,IAAI,MAAM;KACpD,OAAO,IAAI,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,SAAS,MAAM,GAC1H,OAAO,GACP,KAAK,GAAG,EAAE;CACf,CAAA;AAID,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,cAAc,IAAI,KAAK,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACxF,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAChD,KAAK,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAC3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GACnF,KAAK,SAAS;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd,KAAK,CAAA;AAEb,eAAO,MAAM,uBAAuB,mGAGjC,UAmCF,CAAA;AAED,KAAK,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { notYetImplemented, shouldNeverHappen } from '@livestore/utils';
2
+ import { Schema } from '@livestore/utils/effect';
3
+ export const storeEventForUpdatePath = (updatePath, value) => {
4
+ if (updatePath._tag === 'ColJsonValue' || updatePath._tag === 'None') {
5
+ return notYetImplemented('TODO');
6
+ }
7
+ const sqliteTableDef = updatePath.table.sqliteDef;
8
+ const id = updatePath.id;
9
+ const { columnNames, bindValues } = (() => {
10
+ if (updatePath._tag === 'Row') {
11
+ const columnNames = Object.keys(value);
12
+ const partialStructSchema = updatePath.table.schema.pipe(Schema.pick(...columnNames));
13
+ // const columnNames = Object.keys(value)
14
+ const bindValues = Schema.encodeSync(partialStructSchema)(value);
15
+ return { columnNames, bindValues };
16
+ }
17
+ else if (updatePath._tag === 'Col') {
18
+ const columnName = updatePath.column;
19
+ const columnSchema = sqliteTableDef.columns[columnName]?.schema ?? shouldNeverHappen(`Column ${columnName} not found`);
20
+ const bindValues = { [columnName]: Schema.encodeSync(columnSchema)(value) };
21
+ return { columnNames: [columnName], bindValues };
22
+ }
23
+ else {
24
+ return shouldNeverHappen();
25
+ }
26
+ })();
27
+ const updateClause = columnNames.map((columnName) => `${columnName} = $${columnName}`).join(', ');
28
+ const whereClause = `where id = '${id}'`;
29
+ const sql = `UPDATE ${sqliteTableDef.name} SET ${updateClause} ${whereClause}`;
30
+ const writeTables = new Set([updatePath.table.sqliteDef.name]);
31
+ return { eventType: 'livestore.RawSql', args: { sql, bindValues, writeTables } };
32
+ };
33
+ //# sourceMappingURL=update-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-path.js","sourceRoot":"","sources":["../src/update-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AA4DhD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,UAAiB,EACjB,KAAgC,EACpB,EAAE;IACd,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACrE,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAA;IACjD,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAA;IAExB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,CAAC,GAAG,EAAE;QACxC,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAEtC,MAAM,mBAAmB,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAA;YAErF,yCAAyC;YACzC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAA;YAChE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAA;QACpC,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAA;YACpC,MAAM,YAAY,GAChB,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,iBAAiB,CAAC,UAAU,UAAU,YAAY,CAAC,CAAA;YACnG,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,CAAA;YAC3E,OAAO,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,iBAAiB,EAAE,CAAA;QAC5B,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,UAAU,OAAO,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEjG,MAAM,WAAW,GAAG,eAAe,EAAE,GAAG,CAAA;IACxC,MAAM,GAAG,GAAG,UAAU,cAAc,CAAC,IAAI,QAAQ,YAAY,IAAI,WAAW,EAAE,CAAA;IAC9E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAEtE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,CAAA;AAClF,CAAC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  /// <reference lib="es2022" />
2
2
  import type { Brand } from '@livestore/utils/effect';
3
+ export type GetValForKey<T, K> = K extends keyof T ? T[K] : never;
3
4
  export type ParamsObject = Record<string, SqlValue>;
4
5
  export type SqlValue = string | number | Uint8Array | null;
5
6
  export type Bindable = SqlValue[] | ParamsObject;
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/utils/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"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/utils/util.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAEpD,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AAEjE,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/utils/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,CAAC;QACtC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;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,CAAC;QAClD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,CAAA;QAC3B,CAAC;IACH,CAAC;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,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACrD,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAElB,OAAO,8BAA8B,GAAG,CAAC,CAAA;IAC3C,CAAC;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/utils/util.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAa9B;;;;;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,CAAC;QACtC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;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,CAAC;QAClD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,CAAA;QAC3B,CAAC;IACH,CAAC;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,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACrD,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAElB,OAAO,8BAA8B,GAAG,CAAC,CAAA;IAC3C,CAAC;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.37",
3
+ "version": "0.0.39-dev.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -62,9 +62,9 @@
62
62
  "lodash-es": "^4.17.21",
63
63
  "sqlite-esm": "3.42.0-build6",
64
64
  "uuid": "^9.0.1",
65
- "@livestore/sql-queries": "0.0.37",
66
- "@livestore/utils": "0.0.37",
67
- "effect-db-schema": "0.0.37"
65
+ "@livestore/sql-queries": "0.0.39-dev.2",
66
+ "@livestore/utils": "0.0.39-dev.2",
67
+ "effect-db-schema": "0.0.39-dev.2"
68
68
  },
69
69
  "devDependencies": {
70
70
  "@opentelemetry/sdk-trace-base": "1.19.0",
@@ -4,7 +4,7 @@ import initSqlite3Wasm from 'sqlite-esm'
4
4
 
5
5
  import { globalDbGraph } from '../../global-state.js'
6
6
  import type { LiveStoreContext } from '../../index.js'
7
- import { createStore, DbSchema, makeDbGraph, makeSchema, sql } from '../../index.js'
7
+ import { createStore, DbSchema, makeDbGraph, makeMutations, makeSchema, ParseUtils, sql } from '../../index.js'
8
8
  import * as LiveStoreReact from '../../react/index.js'
9
9
  import { InMemoryStorage } from '../../storage/in-memory/index.js'
10
10
 
@@ -21,13 +21,15 @@ export type AppState = {
21
21
  filter: Filter
22
22
  }
23
23
 
24
+ export const todos = DbSchema.table('todos', {
25
+ id: DbSchema.text({ primaryKey: true }),
26
+ text: DbSchema.text({ default: '', nullable: false }),
27
+ completed: DbSchema.boolean({ default: false, nullable: false }),
28
+ })
29
+
24
30
  export const schema = makeSchema({
25
31
  tables: {
26
- todos: DbSchema.table('todos', {
27
- id: DbSchema.text({ primaryKey: true }),
28
- text: DbSchema.text({ default: '', nullable: false }),
29
- completed: DbSchema.boolean({ default: false, nullable: false }),
30
- }),
32
+ todos,
31
33
  app: DbSchema.table('app', {
32
34
  id: DbSchema.text({ primaryKey: true }),
33
35
  newTodoText: DbSchema.text({ default: '', nullable: true }),
@@ -53,6 +55,8 @@ export const schema = makeSchema({
53
55
  },
54
56
  })
55
57
 
58
+ export const parseTodos = ParseUtils.many(todos)
59
+
56
60
  export const makeTodoMvc = async ({
57
61
  otelTracer,
58
62
  otelContext,
@@ -83,11 +87,13 @@ export const makeTodoMvc = async ({
83
87
  otelRootSpanContext: otelContext,
84
88
  })
85
89
 
90
+ const mutations = makeMutations(schema)
91
+
86
92
  const storeContext: LiveStoreContext = { store }
87
93
 
88
94
  const wrapper = ({ children }: any) => (
89
95
  <LiveStoreReact.LiveStoreContext.Provider value={storeContext}>{children}</LiveStoreReact.LiveStoreContext.Provider>
90
96
  )
91
97
 
92
- return { wrapper, AppComponentSchema, store, dbGraph }
98
+ return { wrapper, AppComponentSchema, store, dbGraph, mutations }
93
99
  }
@@ -4,17 +4,15 @@ import { describe, expect, it } from 'vitest'
4
4
 
5
5
  import * as LiveStoreReact from '../../react/index.js'
6
6
  import { querySQL } from '../../reactiveQueries/sql.js'
7
- import { sql } from '../../utils/util.js'
8
- import type { Todo } from './fixture.js'
9
- import { makeTodoMvc } from './fixture.js'
7
+ import { makeTodoMvc, parseTodos } from './fixture.js'
10
8
 
11
9
  describe('useQuery', () => {
12
10
  it('simple', async () => {
13
11
  let renderCount = 0
14
12
 
15
- const { wrapper, store } = await makeTodoMvc()
13
+ const { wrapper, store, mutations } = await makeTodoMvc()
16
14
 
17
- const allTodos$ = querySQL<Todo>(`select * from todos`)
15
+ const allTodos$ = querySQL(`select * from todos`, { map: parseTodos })
18
16
 
19
17
  const { result } = renderHook(
20
18
  () => {
@@ -28,12 +26,7 @@ describe('useQuery', () => {
28
26
  expect(result.current.length).toBe(0)
29
27
  expect(renderCount).toBe(1)
30
28
 
31
- act(() =>
32
- store.applyEvent('livestore.RawSql', {
33
- sql: sql`INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)`,
34
- writeTables: ['todos'],
35
- }),
36
- )
29
+ act(() => store.applyEvents([mutations.todos.insert({ id: 't1', text: 'buy milk', completed: false })]))
37
30
 
38
31
  expect(result.current.length).toBe(1)
39
32
  expect(result.current[0]!.text).toBe('buy milk')
@@ -43,20 +36,15 @@ describe('useQuery', () => {
43
36
  it('same `useQuery` hook invoked with different queries', async () => {
44
37
  let renderCount = 0
45
38
 
46
- const { wrapper, store } = await makeTodoMvc()
47
-
48
- const todo1$ = querySQL<Todo>(`select * from todos where id = 't1'`, { label: 'libraryTracksView1' })
49
- const todo2$ = querySQL<Todo>(`select * from todos where id = 't2'`, { label: 'libraryTracksView2' })
39
+ const { wrapper, store, mutations } = await makeTodoMvc()
50
40
 
51
- store.applyEvent('livestore.RawSql', {
52
- sql: sql`INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)`,
53
- writeTables: ['todos'],
54
- })
41
+ const todo1$ = querySQL(`select * from todos where id = 't1'`, { label: 'libraryTracksView1', map: parseTodos })
42
+ const todo2$ = querySQL(`select * from todos where id = 't2'`, { label: 'libraryTracksView2', map: parseTodos })
55
43
 
56
- store.applyEvent('livestore.RawSql', {
57
- sql: sql`INSERT INTO todos (id, text, completed) VALUES ('t2', 'buy eggs', 0)`,
58
- writeTables: ['todos'],
59
- })
44
+ store.applyEvents([
45
+ mutations.todos.insert({ id: 't1', text: 'buy milk', completed: false }),
46
+ mutations.todos.insert({ id: 't2', text: 'buy eggs', completed: false }),
47
+ ])
60
48
 
61
49
  const { result, rerender } = renderHook(
62
50
  (todoId: string) => {
@@ -72,12 +60,7 @@ describe('useQuery', () => {
72
60
  expect(result.current).toBe('buy milk')
73
61
  expect(renderCount).toBe(1)
74
62
 
75
- act(() =>
76
- store.applyEvent('livestore.RawSql', {
77
- sql: sql`UPDATE todos SET text = 'buy soy milk' WHERE id = 't1'`,
78
- writeTables: ['todos'],
79
- }),
80
- )
63
+ act(() => store.applyEvents([mutations.todos.update({ where: { id: 't1' }, values: { text: 'buy soy milk' } })]))
81
64
 
82
65
  expect(result.current).toBe('buy soy milk')
83
66
  expect(renderCount).toBe(2)
@@ -5,7 +5,7 @@ import { describe, expect, it } from 'vitest'
5
5
  import * as LiveStore from '../../index.js'
6
6
  import * as LiveStoreReact from '../../react/index.js'
7
7
  import type { Todo } from './fixture.js'
8
- import { makeTodoMvc } from './fixture.js'
8
+ import { makeTodoMvc, todos } from './fixture.js'
9
9
 
10
10
  describe('useRow', () => {
11
11
  it('should update the data based on component key', async () => {
@@ -97,7 +97,7 @@ describe('useRow', () => {
97
97
  it('should work for a larger app', async () => {
98
98
  const { wrapper, store, dbGraph } = await makeTodoMvc({ useGlobalDbGraph: false })
99
99
 
100
- const allTodos$ = LiveStore.querySQL<Todo>(`select * from todos`, { label: 'allTodos', dbGraph })
100
+ const allTodos$ = LiveStore.querySQL<Todo[]>(`select * from todos`, { label: 'allTodos', dbGraph })
101
101
 
102
102
  const AppRouterSchema = LiveStore.DbSchema.table(
103
103
  'AppRouter',
@@ -140,9 +140,7 @@ describe('useRow', () => {
140
140
  }
141
141
 
142
142
  const TaskDetails: React.FC<{ id: string }> = ({ id }) => {
143
- const todo = LiveStoreReact.useTemporaryQuery(() =>
144
- LiveStore.querySQL<Todo>(`select * from todos where id = '${id}' limit 1`, { dbGraph }).getFirstRow(),
145
- )
143
+ const [todo] = LiveStoreReact.useRow(todos, id, { dbGraph })
146
144
  return <div role="content">{JSON.stringify(todo)}</div>
147
145
  }
148
146
 
@@ -164,7 +162,7 @@ describe('useRow', () => {
164
162
 
165
163
  expect(appRouterRenderCount).toBe(2)
166
164
  expect(renderResult.getByRole('content').innerHTML).toMatchInlineSnapshot(
167
- `"{"id":"t1","text":"buy milk","completed":0}"`,
165
+ `"{"id":"t1","text":"buy milk","completed":false}"`,
168
166
  )
169
167
 
170
168
  expect(renderResult.getByRole('current-id').innerHTML).toMatchInlineSnapshot('"Current Task Id: t1"')
@@ -183,7 +181,7 @@ describe('useRow', () => {
183
181
  args: {
184
182
  id: 'singleton',
185
183
  columnNames: ['currentTaskId'],
186
- tableName: AppRouterSchema.schema.name,
184
+ tableName: AppRouterSchema.sqliteDef.name,
187
185
  bindValues: { currentTaskId: 't2' },
188
186
  },
189
187
  },
@@ -3,8 +3,15 @@ import type { ReadableSpan } from '@opentelemetry/sdk-trace-base'
3
3
  import { BasicTracerProvider, InMemorySpanExporter, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base'
4
4
  import { describe, expect, it } from 'vitest'
5
5
 
6
- import { queryJS, querySQL, sql } from '../../index.js'
7
- import { makeTodoMvc } from '../react/fixture.js'
6
+ import { computed, ParseUtils, querySQL, sql } from '../../index.js'
7
+ import { makeTodoMvc, todos } from '../react/fixture.js'
8
+
9
+ /*
10
+ TODO write tests for:
11
+
12
+ - sql queries without and with `map` (incl. callback and schemas)
13
+ - optional and explicit `queriedTables` argument
14
+ */
8
15
 
9
16
  describe('otel', () => {
10
17
  let cachedProvider: BasicTracerProvider | undefined
@@ -160,16 +167,17 @@ describe('otel', () => {
160
167
  it('with thunks', async () => {
161
168
  const { store, exporter, span } = await makeQuery()
162
169
 
163
- const defaultTodo = { id: '', text: '', completed: 0 }
170
+ const defaultTodo = { id: '', text: '', completed: false }
164
171
 
165
- const filter = queryJS(() => `where completed = 0`, { label: 'where-filter' })
166
- const query = querySQL((get) => `select * from todos ${get(filter)}`, { label: 'all todos' }).getFirstRow({
167
- defaultValue: defaultTodo,
172
+ const filter = computed(() => `where completed = 0`, { label: 'where-filter' })
173
+ const query = querySQL((get) => `select * from todos ${get(filter)}`, {
174
+ label: 'all todos',
175
+ map: ParseUtils.first(todos, defaultTodo),
168
176
  })
169
177
 
170
178
  expect(query.run()).toMatchInlineSnapshot(`
171
179
  {
172
- "completed": 0,
180
+ "completed": false,
173
181
  "id": "",
174
182
  "text": "",
175
183
  }
@@ -182,7 +190,7 @@ describe('otel', () => {
182
190
 
183
191
  expect(query.run()).toMatchInlineSnapshot(`
184
192
  {
185
- "completed": 0,
193
+ "completed": false,
186
194
  "id": "t1",
187
195
  "text": "buy milk",
188
196
  }
@@ -257,49 +265,39 @@ describe('otel', () => {
257
265
  "_name": "LiveStore:queries",
258
266
  "children": [
259
267
  {
260
- "_name": "js:sql(all todos):first",
268
+ "_name": "sql:select * from todos where completed = 0",
269
+ "attributes": {
270
+ "sql.query": "select * from todos where completed = 0",
271
+ "sql.rowsCount": 0,
272
+ },
261
273
  "children": [
262
274
  {
263
- "_name": "sql:select * from todos where completed = 0",
275
+ "_name": "js:where-filter",
276
+ },
277
+ {
278
+ "_name": "sql-in-memory-select",
264
279
  "attributes": {
280
+ "sql.cached": false,
265
281
  "sql.query": "select * from todos where completed = 0",
266
282
  "sql.rowsCount": 0,
267
283
  },
268
- "children": [
269
- {
270
- "_name": "js:where-filter",
271
- },
272
- {
273
- "_name": "sql-in-memory-select",
274
- "attributes": {
275
- "sql.cached": false,
276
- "sql.query": "select * from todos where completed = 0",
277
- "sql.rowsCount": 0,
278
- },
279
- },
280
- ],
281
284
  },
282
285
  ],
283
286
  },
284
287
  {
285
- "_name": "js:sql(all todos):first",
288
+ "_name": "sql:select * from todos where completed = 0",
289
+ "attributes": {
290
+ "sql.query": "select * from todos where completed = 0",
291
+ "sql.rowsCount": 1,
292
+ },
286
293
  "children": [
287
294
  {
288
- "_name": "sql:select * from todos where completed = 0",
295
+ "_name": "sql-in-memory-select",
289
296
  "attributes": {
297
+ "sql.cached": false,
290
298
  "sql.query": "select * from todos where completed = 0",
291
299
  "sql.rowsCount": 1,
292
300
  },
293
- "children": [
294
- {
295
- "_name": "sql-in-memory-select",
296
- "attributes": {
297
- "sql.cached": false,
298
- "sql.query": "select * from todos where completed = 0",
299
- "sql.rowsCount": 1,
300
- },
301
- },
302
- ],
303
301
  },
304
302
  ],
305
303
  },
@@ -5,9 +5,10 @@ import type { GraphQLSchema } from 'graphql'
5
5
  import initSqlite3Wasm from 'sqlite-esm'
6
6
 
7
7
  import type { InMemoryDatabase } from '../inMemoryDatabase.js'
8
+ import type { LiveQuery } from '../reactiveQueries/base-class.js'
8
9
  import type { LiveStoreSchema } from '../schema/index.js'
9
10
  import type { StorageInit } from '../storage/index.js'
10
- import type { BaseGraphQLContext, GraphQLOptions, LiveStoreQuery, Store } from '../store.js'
11
+ import type { BaseGraphQLContext, GraphQLOptions, Store } from '../store.js'
11
12
  import { createStore } from '../store.js'
12
13
 
13
14
  // NOTE we're starting to initialize the sqlite wasm binary here (already before calling `createStore`),
@@ -22,7 +23,7 @@ export type LiveStoreContext = {
22
23
  store: Store
23
24
  }
24
25
 
25
- export type QueryDefinition = (store: Store) => LiveStoreQuery
26
+ export type QueryDefinition = <TResult>(store: Store) => LiveQuery<TResult>
26
27
 
27
28
  export type LiveStoreCreateStoreOptions<GraphQLContext extends BaseGraphQLContext> = {
28
29
  schema: LiveStoreSchema
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { Store, createStore } from './store.js'
2
- export type { LiveStoreQuery, BaseGraphQLContext, QueryResult, QueryDebugInfo, RefreshReason } from './store.js'
2
+ export type { BaseGraphQLContext, QueryDebugInfo, RefreshReason } from './store.js'
3
3
 
4
4
  export type { QueryDefinition, LiveStoreCreateStoreOptions, LiveStoreContext } from './effect/LiveStore.js'
5
5
 
@@ -8,18 +8,18 @@ export { InMemoryDatabase, type DebugInfo, emptyDebugInfo } from './inMemoryData
8
8
  export type { Storage, StorageType, StorageInit } from './storage/index.js'
9
9
 
10
10
  export type { GetAtom, AtomDebugInfo, RefreshDebugInfo, SerializedAtom, Atom, Node, Ref, Effect } from './reactive.js'
11
- export { LiveStoreJSQuery, queryJS } from './reactiveQueries/js.js'
12
- export { LiveStoreSQLQuery, querySQL } from './reactiveQueries/sql.js'
11
+ export { LiveStoreJSQuery, computed } from './reactiveQueries/js.js'
12
+ export { LiveStoreSQLQuery, querySQL, type MapRows } from './reactiveQueries/sql.js'
13
13
  export { LiveStoreGraphQLQuery, queryGraphQL } from './reactiveQueries/graphql.js'
14
- export { type GetAtomResult, type DbGraph, makeDbGraph } from './reactiveQueries/base-class.js'
14
+ export { type GetAtomResult, type DbGraph, makeDbGraph, type LiveQuery } from './reactiveQueries/base-class.js'
15
15
 
16
16
  export { globalDbGraph } from './global-state.js'
17
17
 
18
- export { type RowResult, type RowResultEncoded, type RowQueryArgs, rowQuery } from './row-query.js'
18
+ export { type RowResult, type RowResultEncoded, rowQuery, deriveColQuery } from './row-query.js'
19
19
 
20
20
  export * from './mutations.js'
21
21
 
22
- export { defineAction, defineActions, makeSchema, DbSchema } from './schema/index.js'
22
+ export { defineAction, defineActions, makeSchema, DbSchema, ParseUtils } from './schema/index.js'
23
23
 
24
24
  export type {
25
25
  LiveStoreSchema,
package/src/migrations.ts CHANGED
@@ -39,12 +39,12 @@ export const migrateDb = ({
39
39
  const tableDefs = new Set([
40
40
  // NOTE it's important the `SCHEMA_META_TABLE` comes first since we're writing to it below
41
41
  ...systemTables,
42
- ...Array.from(schema.tables.values()).filter((_) => _.schema.name !== SCHEMA_META_TABLE),
42
+ ...Array.from(schema.tables.values()).filter((_) => _.sqliteDef.name !== SCHEMA_META_TABLE),
43
43
  ...dynamicallyRegisteredTables.values(),
44
44
  ])
45
45
 
46
46
  for (const tableDef of tableDefs) {
47
- const tableAst = tableDef.schema.ast
47
+ const tableAst = tableDef.sqliteDef.ast
48
48
  const tableName = tableAst.name
49
49
  const dbSchemaHash = dbSchemaHashByTable[tableName]
50
50
  const schemaHash = SqliteAst.hash(tableAst)
package/src/mutations.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import * as SqlQueries from '@livestore/sql-queries'
2
2
  import type { SqliteDsl } from 'effect-db-schema'
3
3
 
4
- import type { RowInsert, RowResult } from './row-query.js'
4
+ import type { RowResult } from './row-query.js'
5
5
  import type { LiveStoreSchema } from './schema/index.js'
6
6
  import type { TableDef } from './schema/table-def.js'
7
+ import type { GetValForKey } from './utils/util.js'
7
8
 
8
9
  export const makeMutations = <TDbSchema extends SqliteDsl.DbSchema>(
9
10
  schema: LiveStoreSchema<TDbSchema>,
@@ -12,7 +13,7 @@ export const makeMutations = <TDbSchema extends SqliteDsl.DbSchema>(
12
13
  }
13
14
 
14
15
  const mutationsForTable = <TTableDef extends TableDef>(tableDef: TTableDef): [string, Mutation<TTableDef>] => {
15
- const table = tableDef.schema
16
+ const table = tableDef.sqliteDef
16
17
  const writeTables = new Set([table.name])
17
18
  const api = {
18
19
  insert: (values) => {
@@ -43,7 +44,7 @@ const mutationsForTable = <TTableDef extends TableDef>(tableDef: TTableDef): [st
43
44
  },
44
45
  } satisfies Mutation<TTableDef>
45
46
 
46
- return [tableDef.schema.name, api]
47
+ return [tableDef.sqliteDef.name, api]
47
48
  }
48
49
 
49
50
  export type MutationEvent = {
@@ -57,6 +58,10 @@ export type UpdateMutation<TTableDef extends TableDef> = (args: {
57
58
  values: Partial<RowResult<TTableDef>>
58
59
  }) => MutationEvent
59
60
 
61
+ export type RowInsert<TTableDef extends TableDef> = TTableDef['isSingleColumn'] extends true
62
+ ? GetValForKey<SqliteDsl.FromColumns.InsertRowDecoded<TTableDef['sqliteDef']['columns']>, 'value'>
63
+ : SqliteDsl.FromColumns.InsertRowDecoded<TTableDef['sqliteDef']['columns']>
64
+
60
65
  export type InsertMutation<TTableDef extends TableDef> = (values: RowInsert<TTableDef>) => MutationEvent
61
66
 
62
67
  export type DeleteMutation<TTableDef extends TableDef> = (args: {