@livestore/common 0.3.0-dev.17 → 0.3.0-dev.19
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/adapter-types.d.ts +7 -0
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js +4 -0
- package/dist/adapter-types.js.map +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 +28 -28
- package/dist/devtools/index.d.ts +2 -0
- package/dist/devtools/index.d.ts.map +1 -1
- package/dist/devtools/index.js +3 -3
- package/dist/devtools/index.js.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.js +6 -7
- package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
- package/dist/leader-thread/apply-mutation.d.ts.map +1 -1
- package/dist/leader-thread/apply-mutation.js +4 -4
- package/dist/leader-thread/apply-mutation.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/rehydrate-from-mutationlog.js +3 -3
- package/dist/rehydrate-from-mutationlog.js.map +1 -1
- package/dist/schema/MutationEvent.js +2 -2
- package/dist/schema/MutationEvent.js.map +1 -1
- package/dist/schema/mutations.d.ts +4 -1
- package/dist/schema/mutations.d.ts.map +1 -1
- package/dist/schema/mutations.js.map +1 -1
- package/dist/schema/schema.d.ts +1 -0
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +19 -8
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema-management/validate-mutation-defs.js +2 -2
- package/dist/schema-management/validate-mutation-defs.js.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.js +4 -6
- package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
- package/dist/sync/sync.d.ts +1 -1
- package/dist/sync/sync.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/src/adapter-types.ts +5 -0
- package/src/devtools/index.ts +2 -1
- package/src/leader-thread/LeaderSyncProcessor.ts +7 -9
- package/src/leader-thread/apply-mutation.ts +4 -3
- package/src/leader-thread/make-leader-thread-layer.ts +2 -1
- package/src/rehydrate-from-mutationlog.ts +2 -2
- package/src/schema/MutationEvent.ts +2 -2
- package/src/schema/mutations.ts +4 -1
- package/src/schema/schema.ts +20 -8
- package/src/schema-management/validate-mutation-defs.ts +2 -2
- package/src/sync/ClientSessionSyncProcessor.ts +5 -7
- package/src/sync/sync.ts +1 -1
- package/src/version.ts +1 -1
- package/tmp/pack.tgz +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ClientSessionSyncProcessor.js","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAE3E,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC/G,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAG1C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;
|
1
|
+
{"version":3,"file":"ClientSessionSyncProcessor.js","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/sync.d.ts
CHANGED
@@ -12,7 +12,7 @@ export type MakeBackendArgs = {
|
|
12
12
|
clientId: string;
|
13
13
|
};
|
14
14
|
export type SyncOptions = {
|
15
|
-
makeBackend
|
15
|
+
makeBackend?: (args: MakeBackendArgs) => Effect.Effect<SyncBackend<any>, UnexpectedError, Scope.Scope>;
|
16
16
|
/** @default { _tag: 'Skip' } */
|
17
17
|
initialSyncOptions?: InitialSyncOptions;
|
18
18
|
};
|
package/dist/sync/sync.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzG,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,KAAK,aAAa,MAAM,4BAA4B,CAAA;AAEhE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzG,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,KAAK,aAAa,MAAM,4BAA4B,CAAA;AAEhE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IACtG,gCAAgC;IAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,aAAa,GAAG,MAAM,CAAC,SAAS,IAAI;IAC1D,IAAI,EAAE,CACJ,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAA;QACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;KACvC,CAAC,KACC,MAAM,CAAC,MAAM,CAChB;QACE,KAAK,EAAE,aAAa,CAAC;YACnB,oBAAoB,EAAE,aAAa,CAAC,gBAAgB,CAAA;YACpD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;SACvC,CAAC,CAAA;QACF,SAAS,EAAE,MAAM,CAAA;KAClB,EACD,cAAc,GAAG,gBAAgB,EACjC,UAAU,CAAC,UAAU,CACtB,CAAA;IAED,IAAI,EAAE;IACJ;;;;SAIK;IACL,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,KACjD,MAAM,CAAC,MAAM,CAChB;QACE,sCAAsC;QACtC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;KACtD,EACD,cAAc,GAAG,gBAAgB,EACjC,UAAU,CAAC,UAAU,CACtB,CAAA;IACD,WAAW,EAAE,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;CACtD,CAAA;;;;AAED,qBAAa,cAAe,SAAQ,mBAA0D;CAAG;;;;;;;;;;;AAEjG,qBAAa,gBAAiB,SAAQ,qBAUpC;CAAG;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAEpC;CAAG;;;;;;;;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG"}
|
package/dist/version.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
export declare const liveStoreVersion: "0.3.0-dev.
|
1
|
+
export declare const liveStoreVersion: "0.3.0-dev.19";
|
2
2
|
/**
|
3
3
|
* This version number is incremented whenever the internal storage format changes in a breaking way.
|
4
4
|
* Whenever this version changes, LiveStore will start with fresh database files. Old database files are not deleted.
|
package/dist/version.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
// TODO bring back when Expo and Playwright supports `with` imports
|
2
2
|
// import packageJson from '../package.json' with { type: 'json' }
|
3
3
|
// export const liveStoreVersion = packageJson.version
|
4
|
-
export const liveStoreVersion = '0.3.0-dev.
|
4
|
+
export const liveStoreVersion = '0.3.0-dev.19';
|
5
5
|
/**
|
6
6
|
* This version number is incremented whenever the internal storage format changes in a breaking way.
|
7
7
|
* Whenever this version changes, LiveStore will start with fresh database files. Old database files are not deleted.
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@livestore/common",
|
3
|
-
"version": "0.3.0-dev.
|
3
|
+
"version": "0.3.0-dev.19",
|
4
4
|
"type": "module",
|
5
5
|
"sideEffects": false,
|
6
6
|
"exports": {
|
@@ -54,7 +54,7 @@
|
|
54
54
|
"graphology": "0.26.0-alpha1",
|
55
55
|
"graphology-dag": "0.4.1",
|
56
56
|
"graphology-types": "0.24.8",
|
57
|
-
"@livestore/utils": "0.3.0-dev.
|
57
|
+
"@livestore/utils": "0.3.0-dev.19"
|
58
58
|
},
|
59
59
|
"devDependencies": {
|
60
60
|
"vitest": "^2.1.4"
|
package/src/adapter-types.ts
CHANGED
@@ -82,6 +82,7 @@ export interface SqliteDb<TReq = any, TMetadata extends TReq = TReq> {
|
|
82
82
|
makeChangeset: (data: Uint8Array) => SqliteDbChangeset
|
83
83
|
}
|
84
84
|
|
85
|
+
// TODO refactor this helper type. It's quite cumbersome to use and should be revisited.
|
85
86
|
export type MakeSqliteDb<
|
86
87
|
TReq = { dbPointer: number; persistenceInfo: PersistenceInfo },
|
87
88
|
TInput_ extends { _tag: string } = { _tag: string },
|
@@ -167,6 +168,10 @@ export class IntentionalShutdownCause extends Schema.TaggedError<IntentionalShut
|
|
167
168
|
},
|
168
169
|
) {}
|
169
170
|
|
171
|
+
export class StoreInterrupted extends Schema.TaggedError<StoreInterrupted>()('LiveStore.StoreInterrupted', {
|
172
|
+
reason: Schema.String,
|
173
|
+
}) {}
|
174
|
+
|
170
175
|
export class SqliteError extends Schema.TaggedError<SqliteError>()('LiveStore.SqliteError', {
|
171
176
|
query: Schema.optional(
|
172
177
|
Schema.Struct({
|
package/src/devtools/index.ts
CHANGED
@@ -49,9 +49,10 @@ export namespace WebBridge {
|
|
49
49
|
|
50
50
|
export const DevtoolsMode = Schema.Union(
|
51
51
|
Schema.TaggedStruct('from-search-params', {}),
|
52
|
-
// TODO add storeId, clientId and sessionId for Expo
|
53
52
|
Schema.TaggedStruct('expo', {
|
54
53
|
storeId: Schema.String,
|
54
|
+
clientId: Schema.String,
|
55
|
+
sessionId: Schema.String,
|
55
56
|
}),
|
56
57
|
// TODO add storeId, clientId and sessionId for Node
|
57
58
|
Schema.TaggedStruct('node', {
|
@@ -18,17 +18,17 @@ import type * as otel from '@opentelemetry/api'
|
|
18
18
|
|
19
19
|
import type { SqliteDb } from '../adapter-types.js'
|
20
20
|
import { UnexpectedError } from '../adapter-types.js'
|
21
|
-
import { clientId } from '../devtools/devtools-messages-common.js'
|
22
21
|
import type { LiveStoreSchema, SessionChangesetMetaRow } from '../schema/mod.js'
|
23
22
|
import {
|
24
23
|
EventId,
|
24
|
+
getMutationDef,
|
25
25
|
MUTATION_LOG_META_TABLE,
|
26
26
|
MutationEvent,
|
27
27
|
mutationLogMetaTable,
|
28
28
|
SESSION_CHANGESET_META_TABLE,
|
29
29
|
} from '../schema/mod.js'
|
30
30
|
import { updateRows } from '../sql-queries/index.js'
|
31
|
-
import {
|
31
|
+
import { LeaderAheadError } from '../sync/sync.js'
|
32
32
|
import * as SyncState from '../sync/syncstate.js'
|
33
33
|
import { sql } from '../util.js'
|
34
34
|
import { makeApplyMutation } from './apply-mutation.js'
|
@@ -88,7 +88,7 @@ export const makeLeaderSyncProcessor = ({
|
|
88
88
|
const syncStateSref = yield* SubscriptionRef.make<SyncState.SyncState | undefined>(undefined)
|
89
89
|
|
90
90
|
const isLocalEvent = (mutationEventEncoded: MutationEvent.EncodedWithMeta) => {
|
91
|
-
const mutationDef = schema
|
91
|
+
const mutationDef = getMutationDef(schema, mutationEventEncoded.mutation)
|
92
92
|
return mutationDef.options.clientOnly
|
93
93
|
}
|
94
94
|
|
@@ -170,9 +170,7 @@ export const makeLeaderSyncProcessor = ({
|
|
170
170
|
const syncState = yield* syncStateSref
|
171
171
|
if (syncState === undefined) return shouldNeverHappen('Not initialized')
|
172
172
|
|
173
|
-
const mutationDef =
|
174
|
-
schema.mutations.get(partialMutationEvent.mutation) ??
|
175
|
-
shouldNeverHappen(`Unknown mutation: ${partialMutationEvent.mutation}`)
|
173
|
+
const mutationDef = getMutationDef(schema, partialMutationEvent.mutation)
|
176
174
|
|
177
175
|
const mutationEventEncoded = new MutationEvent.EncodedWithMeta({
|
178
176
|
...partialMutationEvent,
|
@@ -227,7 +225,7 @@ export const makeLeaderSyncProcessor = ({
|
|
227
225
|
const filteredBatch = pendingMutationEvents
|
228
226
|
// Don't sync clientOnly mutations
|
229
227
|
.filter((mutationEventEncoded) => {
|
230
|
-
const mutationDef = schema
|
228
|
+
const mutationDef = getMutationDef(schema, mutationEventEncoded.mutation)
|
231
229
|
return mutationDef.options.clientOnly === false
|
232
230
|
})
|
233
231
|
|
@@ -463,7 +461,7 @@ const backgroundApplyLocalPushes = ({
|
|
463
461
|
|
464
462
|
// Don't sync clientOnly mutations
|
465
463
|
const filteredBatch = updateResult.newEvents.filter((mutationEventEncoded) => {
|
466
|
-
const mutationDef = schema
|
464
|
+
const mutationDef = getMutationDef(schema, mutationEventEncoded.mutation)
|
467
465
|
return mutationDef.options.clientOnly === false
|
468
466
|
})
|
469
467
|
|
@@ -617,7 +615,7 @@ const backgroundBackendPulling = ({
|
|
617
615
|
})
|
618
616
|
|
619
617
|
const filteredRebasedPending = updateResult.newSyncState.pending.filter((mutationEvent) => {
|
620
|
-
const mutationDef = schema
|
618
|
+
const mutationDef = getMutationDef(schema, mutationEvent.mutation)
|
621
619
|
return mutationDef.options.clientOnly === false
|
622
620
|
})
|
623
621
|
yield* restartBackendPushing(filteredRebasedPending)
|
@@ -6,6 +6,7 @@ import type { PreparedBindValues, SqliteDb, SqliteError, UnexpectedError } from
|
|
6
6
|
import { getExecArgsFromMutation } from '../mutation.js'
|
7
7
|
import {
|
8
8
|
EventId,
|
9
|
+
getMutationDef,
|
9
10
|
type LiveStoreSchema,
|
10
11
|
MUTATION_LOG_META_TABLE,
|
11
12
|
type MutationEvent,
|
@@ -34,7 +35,7 @@ export const makeApplyMutation: Effect.Effect<ApplyMutation, never, Scope.Scope
|
|
34
35
|
// TODO Running `Schema.hash` can be a bottleneck for larger schemas. There is an opportunity to run this
|
35
36
|
// at build time and lookup the pre-computed hash at runtime.
|
36
37
|
// Also see https://github.com/Effect-TS/effect/issues/2719
|
37
|
-
[...leaderThreadCtx.schema.mutations.entries()].map(([k, v]) => [k, Schema.hash(v.schema)] as const),
|
38
|
+
[...leaderThreadCtx.schema.mutations.map.entries()].map(([k, v]) => [k, Schema.hash(v.schema)] as const),
|
38
39
|
)
|
39
40
|
|
40
41
|
return (mutationEventEncoded, options) =>
|
@@ -43,7 +44,7 @@ export const makeApplyMutation: Effect.Effect<ApplyMutation, never, Scope.Scope
|
|
43
44
|
const skipMutationLog = options?.skipMutationLog ?? false
|
44
45
|
|
45
46
|
const mutationName = mutationEventEncoded.mutation
|
46
|
-
const mutationDef = schema
|
47
|
+
const mutationDef = getMutationDef(schema, mutationName)
|
47
48
|
|
48
49
|
const execArgsArr = getExecArgsFromMutation({
|
49
50
|
mutationDef,
|
@@ -175,7 +176,7 @@ const makeShouldExcludeMutationFromLog = memoizeByRef((schema: LiveStoreSchema)
|
|
175
176
|
return (mutationName: string, mutationEventEncoded: MutationEvent.AnyEncoded): boolean => {
|
176
177
|
if (mutationLogExclude.has(mutationName)) return true
|
177
178
|
|
178
|
-
const mutationDef = schema
|
179
|
+
const mutationDef = getMutationDef(schema, mutationName)
|
179
180
|
const execArgsArr = getExecArgsFromMutation({
|
180
181
|
mutationDef,
|
181
182
|
mutationEvent: { decoded: undefined, encoded: mutationEventEncoded },
|
@@ -53,7 +53,8 @@ export const makeLeaderThreadLayer = ({
|
|
53
53
|
const dbMissing =
|
54
54
|
dbReadModel.select<{ count: number }>(sql`select count(*) as count from sqlite_master`)[0]!.count === 0
|
55
55
|
|
56
|
-
const syncBackend =
|
56
|
+
const syncBackend =
|
57
|
+
syncOptions?.makeBackend === undefined ? undefined : yield* syncOptions.makeBackend({ storeId, clientId })
|
57
58
|
|
58
59
|
const initialBlockingSyncContext = yield* makeInitialBlockingSyncContext({
|
59
60
|
initialSyncOptions: syncOptions?.initialSyncOptions ?? { _tag: 'Skip' },
|
@@ -4,7 +4,7 @@ import { Chunk, Effect, Option, Schema, Stream } from '@livestore/utils/effect'
|
|
4
4
|
import { type MigrationOptionsFromMutationLog, type SqliteDb, UnexpectedError } from './adapter-types.js'
|
5
5
|
import { makeApplyMutation } from './leader-thread/apply-mutation.js'
|
6
6
|
import type { LiveStoreSchema, MutationDef, MutationEvent, MutationLogMetaRow } from './schema/mod.js'
|
7
|
-
import { EventId, MUTATION_LOG_META_TABLE } from './schema/mod.js'
|
7
|
+
import { EventId, getMutationDef, MUTATION_LOG_META_TABLE } from './schema/mod.js'
|
8
8
|
import type { PreparedBindValues } from './util.js'
|
9
9
|
import { sql } from './util.js'
|
10
10
|
|
@@ -33,7 +33,7 @@ export const rehydrateFromMutationLog = ({
|
|
33
33
|
|
34
34
|
const processMutation = (row: MutationLogMetaRow) =>
|
35
35
|
Effect.gen(function* () {
|
36
|
-
const mutationDef = schema
|
36
|
+
const mutationDef = getMutationDef(schema, row.mutation)
|
37
37
|
|
38
38
|
if (migrationOptions.excludeMutations?.has(row.mutation) === true) return
|
39
39
|
|
@@ -124,7 +124,7 @@ export const makeMutationEventSchema = <TSchema extends LiveStoreSchema>(
|
|
124
124
|
schema: TSchema,
|
125
125
|
): ForMutationDefRecord<TSchema['_MutationDefMapType']> =>
|
126
126
|
Schema.Union(
|
127
|
-
...[...schema.mutations.values()].map((def) =>
|
127
|
+
...[...schema.mutations.map.values()].map((def) =>
|
128
128
|
Schema.Struct({
|
129
129
|
mutation: Schema.Literal(def.name),
|
130
130
|
args: def.schema,
|
@@ -140,7 +140,7 @@ export const makeMutationEventPartialSchema = <TSchema extends LiveStoreSchema>(
|
|
140
140
|
schema: TSchema,
|
141
141
|
): MutationEventPartialSchema<TSchema['_MutationDefMapType']> =>
|
142
142
|
Schema.Union(
|
143
|
-
...[...schema.mutations.values()].map((def) =>
|
143
|
+
...[...schema.mutations.map.values()].map((def) =>
|
144
144
|
Schema.Struct({
|
145
145
|
mutation: Schema.Literal(def.name),
|
146
146
|
args: def.schema,
|
package/src/schema/mutations.ts
CHANGED
@@ -2,7 +2,10 @@ import { Schema } from '@livestore/utils/effect'
|
|
2
2
|
|
3
3
|
import type { BindValues } from '../sql-queries/sql-queries.js'
|
4
4
|
|
5
|
-
export type MutationDefMap =
|
5
|
+
export type MutationDefMap = {
|
6
|
+
map: Map<string | 'livestore.RawSql', MutationDef.Any>
|
7
|
+
wasProvided: boolean
|
8
|
+
}
|
6
9
|
export type MutationDefRecord = {
|
7
10
|
'livestore.RawSql': RawSqlMutation
|
8
11
|
[name: string]: MutationDef.Any
|
package/src/schema/schema.ts
CHANGED
@@ -72,29 +72,32 @@ export const makeSchema = <TInputSchema extends InputSchema>(
|
|
72
72
|
tables.set(tableDef.sqliteDef.name, tableDef)
|
73
73
|
}
|
74
74
|
|
75
|
-
const mutations: MutationDefMap =
|
75
|
+
const mutations: MutationDefMap = {
|
76
|
+
map: new Map(),
|
77
|
+
wasProvided: inputSchema.mutations !== undefined,
|
78
|
+
}
|
76
79
|
|
77
80
|
if (isReadonlyArray(inputSchema.mutations)) {
|
78
81
|
for (const mutation of inputSchema.mutations) {
|
79
|
-
mutations.set(mutation.name, mutation)
|
82
|
+
mutations.map.set(mutation.name, mutation)
|
80
83
|
}
|
81
84
|
} else {
|
82
85
|
for (const mutation of Object.values(inputSchema.mutations ?? {})) {
|
83
|
-
if (mutations.has(mutation.name)) {
|
86
|
+
if (mutations.map.has(mutation.name)) {
|
84
87
|
shouldNeverHappen(`Duplicate mutation name: ${mutation.name}. Please use unique names for mutations.`)
|
85
88
|
}
|
86
|
-
mutations.set(mutation.name, mutation)
|
89
|
+
mutations.map.set(mutation.name, mutation)
|
87
90
|
}
|
88
91
|
}
|
89
92
|
|
90
|
-
mutations.set(rawSqlMutation.name, rawSqlMutation)
|
93
|
+
mutations.map.set(rawSqlMutation.name, rawSqlMutation)
|
91
94
|
|
92
95
|
for (const tableDef of tables.values()) {
|
93
96
|
if (tableHasDerivedMutations(tableDef)) {
|
94
97
|
const derivedMutationDefs = makeDerivedMutationDefsForTable(tableDef)
|
95
|
-
mutations.set(derivedMutationDefs.insert.name, derivedMutationDefs.insert)
|
96
|
-
mutations.set(derivedMutationDefs.update.name, derivedMutationDefs.update)
|
97
|
-
mutations.set(derivedMutationDefs.delete.name, derivedMutationDefs.delete)
|
98
|
+
mutations.map.set(derivedMutationDefs.insert.name, derivedMutationDefs.insert)
|
99
|
+
mutations.map.set(derivedMutationDefs.update.name, derivedMutationDefs.update)
|
100
|
+
mutations.map.set(derivedMutationDefs.delete.name, derivedMutationDefs.delete)
|
98
101
|
}
|
99
102
|
}
|
100
103
|
|
@@ -114,6 +117,15 @@ export const makeSchema = <TInputSchema extends InputSchema>(
|
|
114
117
|
} satisfies LiveStoreSchema
|
115
118
|
}
|
116
119
|
|
120
|
+
export const getMutationDef = <TSchema extends LiveStoreSchema>(schema: TSchema, mutationName: string) => {
|
121
|
+
const mutationDef = schema.mutations.map.get(mutationName)
|
122
|
+
if (mutationDef === undefined) {
|
123
|
+
const extraInfo = schema.mutations.wasProvided ? '' : ' Please provide \`mutations\` in the schema options.'
|
124
|
+
return shouldNeverHappen(`No mutation definition found for \`${mutationName}\`.${extraInfo}`)
|
125
|
+
}
|
126
|
+
return mutationDef
|
127
|
+
}
|
128
|
+
|
117
129
|
export namespace FromInputSchema {
|
118
130
|
export type DeriveSchema<TInputSchema extends InputSchema> = LiveStoreSchema<
|
119
131
|
DbSchemaFromInputSchemaTables<TInputSchema['tables']>,
|
@@ -11,7 +11,7 @@ export const validateSchema = (schema: LiveStoreSchema, schemaManager: SchemaMan
|
|
11
11
|
const registeredMutationDefInfos = schemaManager.getMutationDefInfos()
|
12
12
|
|
13
13
|
const missingMutationDefs = registeredMutationDefInfos.filter(
|
14
|
-
(registeredMutationDefInfo) => !schema.mutations.has(registeredMutationDefInfo.mutationName),
|
14
|
+
(registeredMutationDefInfo) => !schema.mutations.map.has(registeredMutationDefInfo.mutationName),
|
15
15
|
)
|
16
16
|
|
17
17
|
if (missingMutationDefs.length > 0) {
|
@@ -20,7 +20,7 @@ export const validateSchema = (schema: LiveStoreSchema, schemaManager: SchemaMan
|
|
20
20
|
})
|
21
21
|
}
|
22
22
|
|
23
|
-
for (const [, mutationDef] of schema.mutations) {
|
23
|
+
for (const [, mutationDef] of schema.mutations.map) {
|
24
24
|
const registeredMutationDefInfo = registeredMutationDefInfos.find(
|
25
25
|
(info) => info.mutationName === mutationDef.name,
|
26
26
|
)
|
@@ -5,7 +5,7 @@ import * as otel from '@opentelemetry/api'
|
|
5
5
|
|
6
6
|
import type { ClientSession, UnexpectedError } from '../adapter-types.js'
|
7
7
|
import * as EventId from '../schema/EventId.js'
|
8
|
-
import { type LiveStoreSchema } from '../schema/mod.js'
|
8
|
+
import { getMutationDef, type LiveStoreSchema } from '../schema/mod.js'
|
9
9
|
import * as MutationEvent from '../schema/MutationEvent.js'
|
10
10
|
import * as SyncState from './syncstate.js'
|
11
11
|
|
@@ -58,10 +58,8 @@ export const makeClientSessionSyncProcessor = ({
|
|
58
58
|
}
|
59
59
|
|
60
60
|
const syncStateUpdateQueue = Queue.unbounded<SyncState.SyncState>().pipe(Effect.runSync)
|
61
|
-
const isLocalEvent = (mutationEventEncoded: MutationEvent.EncodedWithMeta) =>
|
62
|
-
|
63
|
-
return mutationDef.options.clientOnly
|
64
|
-
}
|
61
|
+
const isLocalEvent = (mutationEventEncoded: MutationEvent.EncodedWithMeta) =>
|
62
|
+
getMutationDef(schema, mutationEventEncoded.mutation).options.clientOnly
|
65
63
|
|
66
64
|
/** We're queuing push requests to reduce the number of messages sent to the leader by batching them */
|
67
65
|
const leaderPushQueue = BucketQueue.make<MutationEvent.EncodedWithMeta>().pipe(Effect.runSync)
|
@@ -71,7 +69,7 @@ export const makeClientSessionSyncProcessor = ({
|
|
71
69
|
|
72
70
|
let baseEventId = syncStateRef.current.localHead
|
73
71
|
const encodedMutationEvents = batch.map((mutationEvent) => {
|
74
|
-
const mutationDef = schema
|
72
|
+
const mutationDef = getMutationDef(schema, mutationEvent.mutation)
|
75
73
|
const nextIdPair = EventId.nextPair(baseEventId, mutationDef.options.clientOnly)
|
76
74
|
baseEventId = nextIdPair.id
|
77
75
|
return new MutationEvent.EncodedWithMeta(
|
@@ -134,7 +132,7 @@ export const makeClientSessionSyncProcessor = ({
|
|
134
132
|
|
135
133
|
const boot: ClientSessionSyncProcessor['boot'] = Effect.gen(function* () {
|
136
134
|
// eslint-disable-next-line unicorn/prefer-global-this
|
137
|
-
if (typeof window !== 'undefined') {
|
135
|
+
if (typeof window !== 'undefined' && typeof window.addEventListener === 'function') {
|
138
136
|
const onBeforeUnload = (event: BeforeUnloadEvent) => {
|
139
137
|
if (syncStateRef.current.pending.length > 0) {
|
140
138
|
// Trigger the default browser dialog
|
package/src/sync/sync.ts
CHANGED
@@ -15,7 +15,7 @@ export type MakeBackendArgs = {
|
|
15
15
|
}
|
16
16
|
|
17
17
|
export type SyncOptions = {
|
18
|
-
makeBackend
|
18
|
+
makeBackend?: (args: MakeBackendArgs) => Effect.Effect<SyncBackend<any>, UnexpectedError, Scope.Scope>
|
19
19
|
/** @default { _tag: 'Skip' } */
|
20
20
|
initialSyncOptions?: InitialSyncOptions
|
21
21
|
}
|
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.19' as const
|
6
6
|
|
7
7
|
/**
|
8
8
|
* This version number is incremented whenever the internal storage format changes in a breaking way.
|
package/tmp/pack.tgz
ADDED
Binary file
|