@livestore/livestore 0.0.0-snapshot-2b8a9de3ec1a701aca891ebc2c98eb328274ae9e → 0.0.0-snapshot-2c861249e50661661613204300b1fc0d902c2e46
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/SqliteDbWrapper.d.ts +7 -1
- package/dist/SqliteDbWrapper.d.ts.map +1 -1
- package/dist/SqliteDbWrapper.js +8 -2
- package/dist/SqliteDbWrapper.js.map +1 -1
- package/dist/live-queries/base-class.d.ts +8 -12
- package/dist/live-queries/base-class.d.ts.map +1 -1
- package/dist/live-queries/base-class.js.map +1 -1
- package/dist/live-queries/computed.d.ts +4 -8
- package/dist/live-queries/computed.d.ts.map +1 -1
- package/dist/live-queries/computed.js +1 -6
- package/dist/live-queries/computed.js.map +1 -1
- package/dist/live-queries/db-query.d.ts +13 -18
- package/dist/live-queries/db-query.d.ts.map +1 -1
- package/dist/live-queries/db-query.js +31 -30
- package/dist/live-queries/db-query.js.map +1 -1
- package/dist/live-queries/db-query.test.js +7 -7
- package/dist/live-queries/db-query.test.js.map +1 -1
- package/dist/live-queries/make-ref.d.ts.map +1 -1
- package/dist/live-queries/make-ref.js +1 -0
- package/dist/live-queries/make-ref.js.map +1 -1
- package/dist/live-queries/row-query-utils.d.ts +12 -0
- package/dist/live-queries/row-query-utils.d.ts.map +1 -0
- package/dist/live-queries/row-query-utils.js +18 -0
- package/dist/live-queries/row-query-utils.js.map +1 -0
- package/dist/mod.d.ts +0 -1
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +0 -1
- package/dist/mod.js.map +1 -1
- package/dist/reactive.d.ts.map +1 -1
- package/dist/reactive.js +1 -1
- package/dist/reactive.js.map +1 -1
- package/dist/store/create-store.d.ts +12 -2
- package/dist/store/create-store.d.ts.map +1 -1
- package/dist/store/create-store.js +18 -11
- package/dist/store/create-store.js.map +1 -1
- package/dist/store/store-types.d.ts +11 -10
- package/dist/store/store-types.d.ts.map +1 -1
- package/dist/store/store.d.ts +29 -30
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +84 -85
- package/dist/store/store.js.map +1 -1
- package/dist/utils/stack-info.test.js +6 -6
- package/dist/utils/tests/fixture.d.ts +54 -207
- package/dist/utils/tests/fixture.d.ts.map +1 -1
- package/dist/utils/tests/fixture.js +20 -13
- package/dist/utils/tests/fixture.js.map +1 -1
- package/package.json +4 -4
- package/src/SqliteDbWrapper.ts +12 -3
- package/src/live-queries/__snapshots__/db-query.test.ts.snap +9 -9
- package/src/live-queries/base-class.ts +8 -25
- package/src/live-queries/computed.ts +4 -18
- package/src/live-queries/db-query.test.ts +7 -7
- package/src/live-queries/db-query.ts +57 -63
- package/src/live-queries/make-ref.ts +2 -0
- package/src/live-queries/row-query-utils.ts +50 -0
- package/src/mod.ts +0 -2
- package/src/reactive.ts +1 -1
- package/src/store/create-store.ts +33 -15
- package/src/store/store-types.ts +11 -11
- package/src/store/store.ts +120 -122
- package/src/utils/stack-info.test.ts +6 -6
- package/src/utils/tests/fixture.ts +21 -25
- package/dist/row-query-utils.d.ts +0 -17
- package/dist/row-query-utils.d.ts.map +0 -1
- package/dist/row-query-utils.js +0 -34
- package/dist/row-query-utils.js.map +0 -1
- package/src/row-query-utils.ts +0 -76
package/dist/store/store.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ClientSession, ClientSessionSyncProcessor, ParamsObject, QueryBuilder, UnexpectedError } from '@livestore/common';
|
|
2
2
|
import type { LiveStoreSchema } from '@livestore/common/schema';
|
|
3
|
-
import {
|
|
3
|
+
import { LiveStoreEvent } from '@livestore/common/schema';
|
|
4
4
|
import type { Scope } from '@livestore/utils/effect';
|
|
5
5
|
import { Effect, Inspectable, Stream } from '@livestore/utils/effect';
|
|
6
6
|
import * as otel from '@opentelemetry/api';
|
|
@@ -9,7 +9,7 @@ import type { Ref } from '../reactive.js';
|
|
|
9
9
|
import { SqliteDbWrapper } from '../SqliteDbWrapper.js';
|
|
10
10
|
import { ReferenceCountedSet } from '../utils/data-structures.js';
|
|
11
11
|
import type { StackInfo } from '../utils/stack-info.js';
|
|
12
|
-
import type { RefreshReason,
|
|
12
|
+
import type { RefreshReason, StoreCommitOptions, StoreOptions, StoreOtel, Unsubscribe } from './store-types.js';
|
|
13
13
|
export declare class Store<TSchema extends LiveStoreSchema = LiveStoreSchema, TContext = {}> extends Inspectable.Class {
|
|
14
14
|
readonly storeId: string;
|
|
15
15
|
reactivityGraph: ReactivityGraph;
|
|
@@ -25,15 +25,13 @@ export declare class Store<TSchema extends LiveStoreSchema = LiveStoreSchema, TC
|
|
|
25
25
|
tableRefs: {
|
|
26
26
|
[key: string]: Ref<null, ReactivityGraphContext, RefreshReason>;
|
|
27
27
|
};
|
|
28
|
-
private
|
|
28
|
+
private effectContext;
|
|
29
29
|
/** RC-based set to see which queries are currently subscribed to */
|
|
30
30
|
activeQueries: ReferenceCountedSet<LiveQuery<any>>;
|
|
31
|
-
readonly
|
|
32
|
-
private unsyncedMutationEvents;
|
|
31
|
+
readonly __eventSchema: LiveStoreEvent.ForEventDefRecord<TSchema["_EventDefMapType"]>;
|
|
33
32
|
readonly syncProcessor: ClientSessionSyncProcessor;
|
|
34
|
-
readonly lifetimeScope: Scope.Scope;
|
|
35
33
|
readonly boot: Effect.Effect<void, UnexpectedError, Scope.Scope>;
|
|
36
|
-
constructor({ clientSession, schema, otelOptions, context,
|
|
34
|
+
constructor({ clientSession, schema, otelOptions, context, batchUpdates, storeId, effectContext, params, confirmUnsavedChanges, __runningInDevtools, }: StoreOptions<TSchema, TContext>);
|
|
37
35
|
get sessionId(): string;
|
|
38
36
|
get clientId(): string;
|
|
39
37
|
/**
|
|
@@ -45,10 +43,10 @@ export declare class Store<TSchema extends LiveStoreSchema = LiveStoreSchema, TC
|
|
|
45
43
|
* const unsubscribe = store.subscribe(query$, { onUpdate: (result) => console.log(result) })
|
|
46
44
|
* ```
|
|
47
45
|
*/
|
|
48
|
-
subscribe: <TResult>(query: LiveQueryDef<TResult
|
|
46
|
+
subscribe: <TResult>(query: LiveQueryDef<TResult> | LiveQuery<TResult>, options: {
|
|
49
47
|
/** Called when the query result has changed */
|
|
50
48
|
onUpdate: (value: TResult) => void;
|
|
51
|
-
onSubscribe?: (query$: LiveQuery<TResult
|
|
49
|
+
onSubscribe?: (query$: LiveQuery<TResult>) => void;
|
|
52
50
|
/** Gets called after the query subscription has been removed */
|
|
53
51
|
onUnsubsubscribe?: () => void;
|
|
54
52
|
label?: string;
|
|
@@ -61,7 +59,7 @@ export declare class Store<TSchema extends LiveStoreSchema = LiveStoreSchema, TC
|
|
|
61
59
|
/** If provided, the stack info will be added to the `activeSubscriptions` set of the query */
|
|
62
60
|
stackInfo?: StackInfo;
|
|
63
61
|
}) => Unsubscribe;
|
|
64
|
-
subscribeStream: <TResult>(query$: LiveQueryDef<TResult
|
|
62
|
+
subscribeStream: <TResult>(query$: LiveQueryDef<TResult>, options?: {
|
|
65
63
|
label?: string;
|
|
66
64
|
skipInitialRun?: boolean;
|
|
67
65
|
} | undefined) => Stream.Stream<TResult>;
|
|
@@ -79,51 +77,52 @@ export declare class Store<TSchema extends LiveStoreSchema = LiveStoreSchema, TC
|
|
|
79
77
|
* const completedTodos = store.query({ query: 'SELECT * FROM todo WHERE complete = 1', bindValues: {} })
|
|
80
78
|
* ```
|
|
81
79
|
*/
|
|
82
|
-
query: <TResult>(query: QueryBuilder<TResult, any, any> | LiveQuery<TResult
|
|
80
|
+
query: <TResult>(query: QueryBuilder<TResult, any, any> | LiveQuery<TResult> | LiveQueryDef<TResult> | {
|
|
83
81
|
query: string;
|
|
84
82
|
bindValues: ParamsObject;
|
|
85
83
|
}, options?: {
|
|
86
84
|
otelContext?: otel.Context;
|
|
87
85
|
debugRefreshReason?: RefreshReason;
|
|
88
86
|
}) => TResult;
|
|
87
|
+
atom: () => TODO;
|
|
89
88
|
setRef: <T>(refDef: ILiveQueryRefDef<T>, value: T) => void;
|
|
90
89
|
/**
|
|
91
|
-
* Commit a list of
|
|
92
|
-
* and sync the
|
|
90
|
+
* Commit a list of events to the store which will immediately update the local database
|
|
91
|
+
* and sync the events across other clients (similar to a `git commit`).
|
|
93
92
|
*
|
|
94
93
|
* @example
|
|
95
94
|
* ```ts
|
|
96
|
-
* store.commit(
|
|
95
|
+
* store.commit(events.todoCreated({ id: nanoid(), text: 'Make coffee' }))
|
|
97
96
|
* ```
|
|
98
97
|
*
|
|
99
|
-
* You can call `commit` with multiple
|
|
98
|
+
* You can call `commit` with multiple events to apply them in a single database transaction.
|
|
100
99
|
*
|
|
101
100
|
* @example
|
|
102
101
|
* ```ts
|
|
103
102
|
* const todoId = nanoid()
|
|
104
103
|
* store.commit(
|
|
105
|
-
*
|
|
106
|
-
*
|
|
104
|
+
* events.todoCreated({ id: todoId, text: 'Make coffee' }),
|
|
105
|
+
* events.todoCompleted({ id: todoId }))
|
|
107
106
|
* ```
|
|
108
107
|
*
|
|
109
108
|
* For more advanced transaction scenarios, you can pass a synchronous function to `commit` which will receive a callback
|
|
110
|
-
* to which you can pass multiple
|
|
111
|
-
* Under the hood this will simply collect all
|
|
109
|
+
* to which you can pass multiple events to be committed in the same database transaction.
|
|
110
|
+
* Under the hood this will simply collect all events and apply them in a single database transaction.
|
|
112
111
|
*
|
|
113
112
|
* @example
|
|
114
113
|
* ```ts
|
|
115
114
|
* store.commit((commit) => {
|
|
116
115
|
* const todoId = nanoid()
|
|
117
116
|
* if (Math.random() > 0.5) {
|
|
118
|
-
* commit(
|
|
117
|
+
* commit(events.todoCreated({ id: todoId, text: 'Make coffee' }))
|
|
119
118
|
* } else {
|
|
120
|
-
* commit(
|
|
119
|
+
* commit(events.todoCompleted({ id: todoId }))
|
|
121
120
|
* }
|
|
122
121
|
* })
|
|
123
122
|
* ```
|
|
124
123
|
*
|
|
125
|
-
* When committing a large batch of
|
|
126
|
-
* and call `store.manualRefresh()` after all
|
|
124
|
+
* When committing a large batch of events, you can also skip the database refresh to improve performance
|
|
125
|
+
* and call `store.manualRefresh()` after all events have been committed.
|
|
127
126
|
*
|
|
128
127
|
* @example
|
|
129
128
|
* ```ts
|
|
@@ -133,19 +132,19 @@ export declare class Store<TSchema extends LiveStoreSchema = LiveStoreSchema, TC
|
|
|
133
132
|
* // ... 1000 more todos
|
|
134
133
|
* ]
|
|
135
134
|
* for (const todo of todos) {
|
|
136
|
-
* store.commit({ skipRefresh: true },
|
|
135
|
+
* store.commit({ skipRefresh: true }, events.todoCreated({ id: todo.id, text: todo.text }))
|
|
137
136
|
* }
|
|
138
137
|
* store.manualRefresh()
|
|
139
138
|
* ```
|
|
140
139
|
*/
|
|
141
140
|
commit: {
|
|
142
|
-
<const
|
|
143
|
-
(txn: <const
|
|
144
|
-
<const
|
|
145
|
-
(options:
|
|
141
|
+
<const TCommitArg extends ReadonlyArray<LiveStoreEvent.PartialForSchema<TSchema>>>(...list: TCommitArg): void;
|
|
142
|
+
(txn: <const TCommitArg extends ReadonlyArray<LiveStoreEvent.PartialForSchema<TSchema>>>(...list: TCommitArg) => void): void;
|
|
143
|
+
<const TCommitArg extends ReadonlyArray<LiveStoreEvent.PartialForSchema<TSchema>>>(options: StoreCommitOptions, ...list: TCommitArg): void;
|
|
144
|
+
(options: StoreCommitOptions, txn: <const TCommitArg extends ReadonlyArray<LiveStoreEvent.PartialForSchema<TSchema>>>(...list: TCommitArg) => void): void;
|
|
146
145
|
};
|
|
147
146
|
/**
|
|
148
|
-
* This can be used in combination with `skipRefresh` when
|
|
147
|
+
* This can be used in combination with `skipRefresh` when committing events.
|
|
149
148
|
* We might need a better solution for this. Let's see.
|
|
150
149
|
*/
|
|
151
150
|
manualRefresh: (options?: {
|
|
@@ -157,6 +156,6 @@ export declare class Store<TSchema extends LiveStoreSchema = LiveStoreSchema, TC
|
|
|
157
156
|
reactivityGraph: import("../reactive.js").ReactiveGraphSnapshot;
|
|
158
157
|
};
|
|
159
158
|
private runEffectFork;
|
|
160
|
-
private
|
|
159
|
+
private getCommitArgs;
|
|
161
160
|
}
|
|
162
161
|
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,0BAA0B,EAC1B,YAAY,EAEZ,YAAY,EACZ,eAAe,EAChB,MAAM,mBAAmB,CAAA;AAc1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
|
package/dist/store/store.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Devtools, getDurationMsFromSpan,
|
|
2
|
-
import {
|
|
1
|
+
import { Devtools, getDurationMsFromSpan, getExecArgsFromEvent, getResultSchema, IntentionalShutdownCause, isQueryBuilder, liveStoreVersion, makeClientSessionSyncProcessor, prepareBindValues, QueryBuilderAstSymbol, replaceSessionIdSymbol, } from '@livestore/common';
|
|
2
|
+
import { getEventDef, LEADER_MERGE_COUNTER_TABLE, LiveStoreEvent, SCHEMA_EVENT_DEFS_META_TABLE, SCHEMA_META_TABLE, SESSION_CHANGESET_META_TABLE, } from '@livestore/common/schema';
|
|
3
3
|
import { assertNever, isDevEnv } from '@livestore/utils';
|
|
4
|
-
import { Cause,
|
|
4
|
+
import { Cause, Effect, Inspectable, OtelTracer, Runtime, Schema, Stream } from '@livestore/utils/effect';
|
|
5
5
|
import { nanoid } from '@livestore/utils/nanoid';
|
|
6
6
|
import * as otel from '@opentelemetry/api';
|
|
7
7
|
import { makeReactivityGraph } from '../live-queries/base-class.js';
|
|
8
|
-
import { makeExecBeforeFirstRun } from '../row-query-utils.js';
|
|
8
|
+
import { makeExecBeforeFirstRun } from '../live-queries/row-query-utils.js';
|
|
9
9
|
import { SqliteDbWrapper } from '../SqliteDbWrapper.js';
|
|
10
10
|
import { ReferenceCountedSet } from '../utils/data-structures.js';
|
|
11
11
|
import { downloadBlob, exposeDebugUtils } from '../utils/dev.js';
|
|
@@ -25,37 +25,33 @@ export class Store extends Inspectable.Class {
|
|
|
25
25
|
* This only works in combination with `equal: () => false` which will always trigger a refresh.
|
|
26
26
|
*/
|
|
27
27
|
tableRefs;
|
|
28
|
-
|
|
28
|
+
effectContext;
|
|
29
29
|
/** RC-based set to see which queries are currently subscribed to */
|
|
30
30
|
activeQueries;
|
|
31
|
-
// NOTE this is currently exposed for the Devtools databrowser to
|
|
32
|
-
|
|
33
|
-
unsyncedMutationEvents;
|
|
31
|
+
// NOTE this is currently exposed for the Devtools databrowser to commit events
|
|
32
|
+
__eventSchema;
|
|
34
33
|
syncProcessor;
|
|
35
|
-
lifetimeScope;
|
|
36
34
|
boot;
|
|
37
35
|
// #region constructor
|
|
38
|
-
constructor({ clientSession, schema, otelOptions, context,
|
|
36
|
+
constructor({ clientSession, schema, otelOptions, context, batchUpdates, storeId, effectContext, params, confirmUnsavedChanges, __runningInDevtools, }) {
|
|
39
37
|
super();
|
|
40
38
|
this.storeId = storeId;
|
|
41
|
-
this.unsyncedMutationEvents = unsyncedMutationEvents;
|
|
42
39
|
this.sqliteDbWrapper = new SqliteDbWrapper({ otel: otelOptions, db: clientSession.sqliteDb });
|
|
43
40
|
this.clientSession = clientSession;
|
|
44
41
|
this.schema = schema;
|
|
45
42
|
this.context = context;
|
|
46
|
-
this.
|
|
47
|
-
this.runtime = runtime;
|
|
43
|
+
this.effectContext = effectContext;
|
|
48
44
|
const reactivityGraph = makeReactivityGraph();
|
|
49
45
|
const syncSpan = otelOptions.tracer.startSpan('LiveStore:sync', {}, otelOptions.rootSpanContext);
|
|
50
46
|
this.syncProcessor = makeClientSessionSyncProcessor({
|
|
51
47
|
schema,
|
|
52
48
|
clientSession,
|
|
53
|
-
runtime,
|
|
54
|
-
|
|
55
|
-
const
|
|
56
|
-
const execArgsArr =
|
|
57
|
-
|
|
58
|
-
|
|
49
|
+
runtime: effectContext.runtime,
|
|
50
|
+
applyEvent: (eventDecoded, { otelContext, withChangeset }) => {
|
|
51
|
+
const eventDef = getEventDef(schema, eventDecoded.name);
|
|
52
|
+
const execArgsArr = getExecArgsFromEvent({
|
|
53
|
+
eventDef,
|
|
54
|
+
event: { decoded: eventDecoded, encoded: undefined },
|
|
59
55
|
});
|
|
60
56
|
const writeTablesForEvent = new Set();
|
|
61
57
|
const exec = () => {
|
|
@@ -65,7 +61,7 @@ export class Store extends Inspectable.Class {
|
|
|
65
61
|
writeTables.forEach((table) => writeTablesForEvent.add(table));
|
|
66
62
|
}
|
|
67
63
|
};
|
|
68
|
-
let sessionChangeset;
|
|
64
|
+
let sessionChangeset = { _tag: 'unset' };
|
|
69
65
|
if (withChangeset === true) {
|
|
70
66
|
sessionChangeset = this.sqliteDbWrapper.withChangeset(exec).changeset;
|
|
71
67
|
}
|
|
@@ -92,12 +88,12 @@ export class Store extends Inspectable.Class {
|
|
|
92
88
|
},
|
|
93
89
|
confirmUnsavedChanges,
|
|
94
90
|
});
|
|
95
|
-
this.
|
|
91
|
+
this.__eventSchema = LiveStoreEvent.makeEventDefSchemaMemo(schema);
|
|
96
92
|
// TODO generalize the `tableRefs` concept to allow finer-grained refs
|
|
97
93
|
this.tableRefs = {};
|
|
98
94
|
this.activeQueries = new ReferenceCountedSet();
|
|
99
|
-
const
|
|
100
|
-
const otelMuationsSpanContext = otel.trace.setSpan(otel.context.active(),
|
|
95
|
+
const commitsSpan = otelOptions.tracer.startSpan('LiveStore:commits', {}, otelOptions.rootSpanContext);
|
|
96
|
+
const otelMuationsSpanContext = otel.trace.setSpan(otel.context.active(), commitsSpan);
|
|
101
97
|
const queriesSpan = otelOptions.tracer.startSpan('LiveStore:queries', {}, otelOptions.rootSpanContext);
|
|
102
98
|
const otelQueriesSpanContext = otel.trace.setSpan(otel.context.active(), queriesSpan);
|
|
103
99
|
this.reactivityGraph = reactivityGraph;
|
|
@@ -111,19 +107,19 @@ export class Store extends Inspectable.Class {
|
|
|
111
107
|
};
|
|
112
108
|
this.otel = {
|
|
113
109
|
tracer: otelOptions.tracer,
|
|
114
|
-
|
|
110
|
+
commitsSpanContext: otelMuationsSpanContext,
|
|
115
111
|
queriesSpanContext: otelQueriesSpanContext,
|
|
116
112
|
};
|
|
117
|
-
// TODO find a better way to detect if we're running LiveStore in the LiveStore devtools
|
|
118
|
-
// But for now this is a good enough approximation with little downsides
|
|
119
|
-
const isRunningInDevtools = disableDevtools === true;
|
|
120
113
|
// Need a set here since `schema.tables` might contain duplicates and some componentStateTables
|
|
121
114
|
const allTableNames = new Set(
|
|
122
|
-
// NOTE we're excluding the LiveStore schema and
|
|
115
|
+
// NOTE we're excluding the LiveStore schema and events tables as they are not user-facing
|
|
123
116
|
// unless LiveStore is running in the devtools
|
|
124
|
-
|
|
117
|
+
__runningInDevtools
|
|
125
118
|
? this.schema.tables.keys()
|
|
126
|
-
: Array.from(this.schema.tables.keys()).filter((_) => _ !== SCHEMA_META_TABLE &&
|
|
119
|
+
: Array.from(this.schema.tables.keys()).filter((_) => _ !== SCHEMA_META_TABLE &&
|
|
120
|
+
_ !== SCHEMA_EVENT_DEFS_META_TABLE &&
|
|
121
|
+
_ !== SESSION_CHANGESET_META_TABLE &&
|
|
122
|
+
_ !== LEADER_MERGE_COUNTER_TABLE));
|
|
127
123
|
const existingTableRefs = new Map(Array.from(this.reactivityGraph.atoms.values())
|
|
128
124
|
.filter((_) => _._tag === 'ref' && _.label?.startsWith('tableRef:') === true)
|
|
129
125
|
.map((_) => [_.label.slice('tableRef:'.length), _]));
|
|
@@ -140,7 +136,7 @@ export class Store extends Inspectable.Class {
|
|
|
140
136
|
}
|
|
141
137
|
// End the otel spans
|
|
142
138
|
syncSpan.end();
|
|
143
|
-
|
|
139
|
+
commitsSpan.end();
|
|
144
140
|
queriesSpan.end();
|
|
145
141
|
}));
|
|
146
142
|
yield* this.syncProcessor.boot;
|
|
@@ -235,7 +231,7 @@ export class Store extends Inspectable.Class {
|
|
|
235
231
|
makeExecBeforeFirstRun({
|
|
236
232
|
table: ast.tableDef,
|
|
237
233
|
id: ast.id,
|
|
238
|
-
|
|
234
|
+
explicitDefaultValues: ast.explicitDefaultValues,
|
|
239
235
|
otelContext: options?.otelContext,
|
|
240
236
|
})(this.reactivityGraph.context);
|
|
241
237
|
}
|
|
@@ -257,6 +253,7 @@ export class Store extends Inspectable.Class {
|
|
|
257
253
|
return query.run({ otelContext: options?.otelContext, debugRefreshReason: options?.debugRefreshReason });
|
|
258
254
|
}
|
|
259
255
|
};
|
|
256
|
+
atom = () => { };
|
|
260
257
|
// makeLive: {
|
|
261
258
|
// <T>(def: LiveQueryDef<T, any>): LiveQuery<T, any>
|
|
262
259
|
// <T>(def: ILiveQueryRefDef<T>): ILiveQueryRef<T>
|
|
@@ -274,42 +271,42 @@ export class Store extends Inspectable.Class {
|
|
|
274
271
|
};
|
|
275
272
|
// #region commit
|
|
276
273
|
/**
|
|
277
|
-
* Commit a list of
|
|
278
|
-
* and sync the
|
|
274
|
+
* Commit a list of events to the store which will immediately update the local database
|
|
275
|
+
* and sync the events across other clients (similar to a `git commit`).
|
|
279
276
|
*
|
|
280
277
|
* @example
|
|
281
278
|
* ```ts
|
|
282
|
-
* store.commit(
|
|
279
|
+
* store.commit(events.todoCreated({ id: nanoid(), text: 'Make coffee' }))
|
|
283
280
|
* ```
|
|
284
281
|
*
|
|
285
|
-
* You can call `commit` with multiple
|
|
282
|
+
* You can call `commit` with multiple events to apply them in a single database transaction.
|
|
286
283
|
*
|
|
287
284
|
* @example
|
|
288
285
|
* ```ts
|
|
289
286
|
* const todoId = nanoid()
|
|
290
287
|
* store.commit(
|
|
291
|
-
*
|
|
292
|
-
*
|
|
288
|
+
* events.todoCreated({ id: todoId, text: 'Make coffee' }),
|
|
289
|
+
* events.todoCompleted({ id: todoId }))
|
|
293
290
|
* ```
|
|
294
291
|
*
|
|
295
292
|
* For more advanced transaction scenarios, you can pass a synchronous function to `commit` which will receive a callback
|
|
296
|
-
* to which you can pass multiple
|
|
297
|
-
* Under the hood this will simply collect all
|
|
293
|
+
* to which you can pass multiple events to be committed in the same database transaction.
|
|
294
|
+
* Under the hood this will simply collect all events and apply them in a single database transaction.
|
|
298
295
|
*
|
|
299
296
|
* @example
|
|
300
297
|
* ```ts
|
|
301
298
|
* store.commit((commit) => {
|
|
302
299
|
* const todoId = nanoid()
|
|
303
300
|
* if (Math.random() > 0.5) {
|
|
304
|
-
* commit(
|
|
301
|
+
* commit(events.todoCreated({ id: todoId, text: 'Make coffee' }))
|
|
305
302
|
* } else {
|
|
306
|
-
* commit(
|
|
303
|
+
* commit(events.todoCompleted({ id: todoId }))
|
|
307
304
|
* }
|
|
308
305
|
* })
|
|
309
306
|
* ```
|
|
310
307
|
*
|
|
311
|
-
* When committing a large batch of
|
|
312
|
-
* and call `store.manualRefresh()` after all
|
|
308
|
+
* When committing a large batch of events, you can also skip the database refresh to improve performance
|
|
309
|
+
* and call `store.manualRefresh()` after all events have been committed.
|
|
313
310
|
*
|
|
314
311
|
* @example
|
|
315
312
|
* ```ts
|
|
@@ -319,44 +316,44 @@ export class Store extends Inspectable.Class {
|
|
|
319
316
|
* // ... 1000 more todos
|
|
320
317
|
* ]
|
|
321
318
|
* for (const todo of todos) {
|
|
322
|
-
* store.commit({ skipRefresh: true },
|
|
319
|
+
* store.commit({ skipRefresh: true }, events.todoCreated({ id: todo.id, text: todo.text }))
|
|
323
320
|
* }
|
|
324
321
|
* store.manualRefresh()
|
|
325
322
|
* ```
|
|
326
323
|
*/
|
|
327
|
-
commit = (
|
|
328
|
-
const {
|
|
329
|
-
for (const
|
|
330
|
-
replaceSessionIdSymbol(
|
|
324
|
+
commit = (firstEventOrTxnFnOrOptions, ...restEvents) => {
|
|
325
|
+
const { events, options } = this.getCommitArgs(firstEventOrTxnFnOrOptions, restEvents);
|
|
326
|
+
for (const event of events) {
|
|
327
|
+
replaceSessionIdSymbol(event.args, this.clientSession.sessionId);
|
|
331
328
|
}
|
|
332
|
-
if (
|
|
329
|
+
if (events.length === 0)
|
|
333
330
|
return;
|
|
334
331
|
const skipRefresh = options?.skipRefresh ?? false;
|
|
335
|
-
const
|
|
336
|
-
|
|
332
|
+
const commitsSpan = otel.trace.getSpan(this.otel.commitsSpanContext);
|
|
333
|
+
commitsSpan.addEvent('commit');
|
|
337
334
|
// console.group('LiveStore.commit', { skipRefresh, wasSyncMessage, label })
|
|
338
|
-
//
|
|
335
|
+
// events.forEach((_) => console.debug(_.name, _.id, _.args))
|
|
339
336
|
// console.groupEnd()
|
|
340
337
|
let durationMs;
|
|
341
338
|
return this.otel.tracer.startActiveSpan('LiveStore:commit', {
|
|
342
339
|
attributes: {
|
|
343
|
-
'livestore.
|
|
344
|
-
'livestore.
|
|
340
|
+
'livestore.eventsCount': events.length,
|
|
341
|
+
'livestore.eventTags': events.map((_) => _.name),
|
|
345
342
|
'livestore.commitLabel': options?.label,
|
|
346
343
|
},
|
|
347
344
|
links: options?.spanLinks,
|
|
348
|
-
}, options?.otelContext ?? this.otel.
|
|
345
|
+
}, options?.otelContext ?? this.otel.commitsSpanContext, (span) => {
|
|
349
346
|
const otelContext = otel.trace.setSpan(otel.context.active(), span);
|
|
350
347
|
try {
|
|
351
348
|
const { writeTables } = (() => {
|
|
352
349
|
try {
|
|
353
|
-
const
|
|
354
|
-
if (
|
|
350
|
+
const applyEvents = () => this.syncProcessor.push(events, { otelContext });
|
|
351
|
+
if (events.length > 1) {
|
|
355
352
|
// TODO: what to do about leader transaction here?
|
|
356
|
-
return this.sqliteDbWrapper.txn(
|
|
353
|
+
return this.sqliteDbWrapper.txn(applyEvents);
|
|
357
354
|
}
|
|
358
355
|
else {
|
|
359
|
-
return
|
|
356
|
+
return applyEvents();
|
|
360
357
|
}
|
|
361
358
|
}
|
|
362
359
|
catch (e) {
|
|
@@ -376,7 +373,7 @@ export class Store extends Inspectable.Class {
|
|
|
376
373
|
}
|
|
377
374
|
const debugRefreshReason = {
|
|
378
375
|
_tag: 'commit',
|
|
379
|
-
|
|
376
|
+
events,
|
|
380
377
|
writeTables: Array.from(writeTables),
|
|
381
378
|
};
|
|
382
379
|
// Update all table refs together in a batch, to only trigger one reactive update
|
|
@@ -396,12 +393,12 @@ export class Store extends Inspectable.Class {
|
|
|
396
393
|
};
|
|
397
394
|
// #endregion commit
|
|
398
395
|
/**
|
|
399
|
-
* This can be used in combination with `skipRefresh` when
|
|
396
|
+
* This can be used in combination with `skipRefresh` when committing events.
|
|
400
397
|
* We might need a better solution for this. Let's see.
|
|
401
398
|
*/
|
|
402
399
|
manualRefresh = (options) => {
|
|
403
400
|
const { label } = options ?? {};
|
|
404
|
-
this.otel.tracer.startActiveSpan('LiveStore:manualRefresh', { attributes: { 'livestore.manualRefreshLabel': label } }, this.otel.
|
|
401
|
+
this.otel.tracer.startActiveSpan('LiveStore:manualRefresh', { attributes: { 'livestore.manualRefreshLabel': label } }, this.otel.commitsSpanContext, (span) => {
|
|
405
402
|
const otelContext = otel.trace.setSpan(otel.context.active(), span);
|
|
406
403
|
this.reactivityGraph.runDeferredEffects({ otelContext });
|
|
407
404
|
span.end();
|
|
@@ -424,10 +421,10 @@ export class Store extends Inspectable.Class {
|
|
|
424
421
|
downloadBlob(data, `livestore-${Date.now()}.db`);
|
|
425
422
|
}).pipe(this.runEffectFork);
|
|
426
423
|
},
|
|
427
|
-
|
|
424
|
+
downloadEventlogDb: () => {
|
|
428
425
|
Effect.gen(this, function* () {
|
|
429
|
-
const data = yield* this.clientSession.leaderThread.
|
|
430
|
-
downloadBlob(data, `livestore-
|
|
426
|
+
const data = yield* this.clientSession.leaderThread.getEventlogData;
|
|
427
|
+
downloadBlob(data, `livestore-eventlog-${Date.now()}.db`);
|
|
431
428
|
}).pipe(this.runEffectFork);
|
|
432
429
|
},
|
|
433
430
|
hardReset: (mode = 'all-data') => {
|
|
@@ -452,32 +449,34 @@ export class Store extends Inspectable.Class {
|
|
|
452
449
|
_tag: 'livestore.Store',
|
|
453
450
|
reactivityGraph: this.reactivityGraph.getSnapshot({ includeResults: true }),
|
|
454
451
|
});
|
|
455
|
-
runEffectFork = (effect) => effect.pipe(Effect.forkIn(this.lifetimeScope), Effect.tapCauseLogPretty, Runtime.runFork(this.runtime));
|
|
456
|
-
|
|
457
|
-
let
|
|
452
|
+
runEffectFork = (effect) => effect.pipe(Effect.forkIn(this.effectContext.lifetimeScope), Effect.tapCauseLogPretty, Runtime.runFork(this.effectContext.runtime));
|
|
453
|
+
getCommitArgs = (firstEventOrTxnFnOrOptions, restEvents) => {
|
|
454
|
+
let events;
|
|
458
455
|
let options;
|
|
459
|
-
if (typeof
|
|
456
|
+
if (typeof firstEventOrTxnFnOrOptions === 'function') {
|
|
460
457
|
// TODO ensure that function is synchronous and isn't called in a async way (also write tests for this)
|
|
461
|
-
|
|
458
|
+
events = firstEventOrTxnFnOrOptions((arg) => events.push(arg));
|
|
462
459
|
}
|
|
463
|
-
else if (
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
options =
|
|
468
|
-
|
|
460
|
+
else if (firstEventOrTxnFnOrOptions?.label !== undefined ||
|
|
461
|
+
firstEventOrTxnFnOrOptions?.skipRefresh !== undefined ||
|
|
462
|
+
firstEventOrTxnFnOrOptions?.otelContext !== undefined ||
|
|
463
|
+
firstEventOrTxnFnOrOptions?.spanLinks !== undefined) {
|
|
464
|
+
options = firstEventOrTxnFnOrOptions;
|
|
465
|
+
events = restEvents;
|
|
469
466
|
}
|
|
470
|
-
else if (
|
|
471
|
-
// When `commit` is called with no arguments (which sometimes happens when dynamically filtering
|
|
472
|
-
|
|
467
|
+
else if (firstEventOrTxnFnOrOptions === undefined) {
|
|
468
|
+
// When `commit` is called with no arguments (which sometimes happens when dynamically filtering events)
|
|
469
|
+
events = [];
|
|
473
470
|
}
|
|
474
471
|
else {
|
|
475
|
-
|
|
472
|
+
events = [firstEventOrTxnFnOrOptions, ...restEvents];
|
|
476
473
|
}
|
|
477
|
-
|
|
478
|
-
//
|
|
479
|
-
|
|
480
|
-
|
|
474
|
+
// for (const event of events) {
|
|
475
|
+
// if (event.args.id === SessionIdSymbol) {
|
|
476
|
+
// event.args.id = this.clientSession.sessionId
|
|
477
|
+
// }
|
|
478
|
+
// }
|
|
479
|
+
return { events, options };
|
|
481
480
|
};
|
|
482
481
|
}
|
|
483
482
|
//# sourceMappingURL=store.js.map
|
package/dist/store/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
|