@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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +21 -21
- package/dist/devtools/devtools-messages-common.d.ts +6 -6
- package/dist/devtools/devtools-messages-leader.d.ts +24 -24
- package/dist/leader-thread/LeaderSyncProcessor.js +10 -10
- package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
- package/dist/leader-thread/materialize-event.d.ts.map +1 -1
- package/dist/leader-thread/materialize-event.js +3 -1
- package/dist/leader-thread/materialize-event.js.map +1 -1
- package/dist/materializer-helper.d.ts +5 -5
- package/dist/materializer-helper.d.ts.map +1 -1
- package/dist/materializer-helper.js +16 -2
- package/dist/materializer-helper.js.map +1 -1
- package/dist/schema/EventDef.d.ts +11 -1
- package/dist/schema/EventDef.d.ts.map +1 -1
- package/dist/schema/EventDef.js.map +1 -1
- package/dist/schema/state/sqlite/client-document-def.test.js +5 -5
- package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
- package/dist/schema/state/sqlite/query-builder/api.d.ts +4 -3
- package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
- package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -1
- package/dist/schema/state/sqlite/query-builder/impl.js +2 -2
- package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
- package/src/leader-thread/LeaderSyncProcessor.ts +10 -10
- package/src/leader-thread/materialize-event.ts +3 -1
- package/src/materializer-helper.ts +33 -9
- package/src/schema/EventDef.ts +12 -1
- package/src/schema/state/sqlite/client-document-def.test.ts +5 -6
- package/src/schema/state/sqlite/query-builder/api.ts +4 -3
- package/src/schema/state/sqlite/query-builder/impl.ts +3 -2
- 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 } | '
|
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
|
291
|
+
* Query will throw if no rows are returned and no fallback is provided.
|
292
292
|
*/
|
293
293
|
readonly first: <TFallback = never>(options?: {
|
294
|
-
|
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:
|
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 === '
|
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.
|
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.
|