@livestore/common 0.3.0-dev.36 → 0.3.0-dev.37

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 (34) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/devtools/devtools-messages-client-session.d.ts +21 -21
  3. package/dist/devtools/devtools-messages-common.d.ts +6 -6
  4. package/dist/devtools/devtools-messages-leader.d.ts +24 -24
  5. package/dist/leader-thread/LeaderSyncProcessor.js +10 -10
  6. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  7. package/dist/leader-thread/materialize-event.d.ts.map +1 -1
  8. package/dist/leader-thread/materialize-event.js +3 -1
  9. package/dist/leader-thread/materialize-event.js.map +1 -1
  10. package/dist/materializer-helper.d.ts +5 -5
  11. package/dist/materializer-helper.d.ts.map +1 -1
  12. package/dist/materializer-helper.js +16 -2
  13. package/dist/materializer-helper.js.map +1 -1
  14. package/dist/schema/EventDef.d.ts +11 -1
  15. package/dist/schema/EventDef.d.ts.map +1 -1
  16. package/dist/schema/EventDef.js.map +1 -1
  17. package/dist/schema/state/sqlite/client-document-def.test.js +5 -5
  18. package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
  19. package/dist/schema/state/sqlite/query-builder/api.d.ts +4 -3
  20. package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
  21. package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -1
  22. package/dist/schema/state/sqlite/query-builder/impl.js +2 -2
  23. package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -1
  24. package/dist/version.d.ts +1 -1
  25. package/dist/version.js +1 -1
  26. package/package.json +3 -3
  27. package/src/leader-thread/LeaderSyncProcessor.ts +10 -10
  28. package/src/leader-thread/materialize-event.ts +3 -1
  29. package/src/materializer-helper.ts +33 -9
  30. package/src/schema/EventDef.ts +12 -1
  31. package/src/schema/state/sqlite/client-document-def.test.ts +5 -6
  32. package/src/schema/state/sqlite/query-builder/api.ts +4 -3
  33. package/src/schema/state/sqlite/query-builder/impl.ts +3 -2
  34. package/src/version.ts +1 -1
@@ -19,7 +19,7 @@ export namespace QueryBuilderAst {
19
19
  export interface SelectQuery {
20
20
  readonly _tag: 'SelectQuery'
21
21
  readonly columns: string[]
22
- readonly pickFirst: false | { fallback: () => any } | 'no-fallback'
22
+ readonly pickFirst: false | { fallback: () => any } | 'throws'
23
23
  readonly select: {
24
24
  columns: ReadonlyArray<string>
25
25
  }
@@ -288,10 +288,11 @@ export namespace QueryBuilder {
288
288
  * db.todos.where('id', '123').first()
289
289
  * ```
290
290
  *
291
- * Query will fail if no rows are returned and no fallback is provided.
291
+ * Query will throw if no rows are returned and no fallback is provided.
292
292
  */
293
293
  readonly first: <TFallback = never>(options?: {
294
- fallback?: () => TFallback | GetSingle<TResult>
294
+ /** @default 'throws' */
295
+ fallback?: (() => TFallback | GetSingle<TResult>) | 'throws'
295
296
  }) => QueryBuilder<
296
297
  TFallback | GetSingle<TResult>,
297
298
  TTableDef,
@@ -143,7 +143,8 @@ export const makeQueryBuilder = <TResult, TTableDef extends TableDefBase>(
143
143
  return makeQueryBuilder(tableDef, {
144
144
  ...ast,
145
145
  limit: Option.some(1),
146
- pickFirst: options?.fallback ? { fallback: options.fallback } : 'no-fallback',
146
+ pickFirst:
147
+ options?.fallback !== undefined && options.fallback !== 'throws' ? { fallback: options.fallback } : 'throws',
147
148
  })
148
149
  },
149
150
  // // eslint-disable-next-line prefer-arrow/prefer-arrow-functions
@@ -309,7 +310,7 @@ export const getResultSchema = (qb: QueryBuilder<any, any, any>): Schema.Schema<
309
310
  const arraySchema = Schema.Array(queryAst.resultSchemaSingle)
310
311
  if (queryAst.pickFirst === false) {
311
312
  return arraySchema
312
- } else if (queryAst.pickFirst === 'no-fallback') {
313
+ } else if (queryAst.pickFirst === 'throws') {
313
314
  // Will throw if the array is empty
314
315
  return arraySchema.pipe(Schema.headOrElse())
315
316
  } else {
package/src/version.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  // import packageJson from '../package.json' with { type: 'json' }
3
3
  // export const liveStoreVersion = packageJson.version
4
4
 
5
- export const liveStoreVersion = '0.3.0-dev.36' as const
5
+ export const liveStoreVersion = '0.3.0-dev.37' as const
6
6
 
7
7
  /**
8
8
  * This version number is incremented whenever the internal storage format changes in a breaking way.