@livestore/livestore 0.0.56-dev.0 → 0.0.56-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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/{MainDatabaseWrapper.d.ts → SynchronousDatabaseWrapper.d.ts} +4 -4
- package/dist/SynchronousDatabaseWrapper.d.ts.map +1 -0
- package/dist/{MainDatabaseWrapper.js → SynchronousDatabaseWrapper.js} +2 -2
- package/dist/SynchronousDatabaseWrapper.js.map +1 -0
- package/dist/effect/LiveStore.d.ts +2 -2
- package/dist/effect/LiveStore.d.ts.map +1 -1
- package/dist/effect/LiveStore.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/reactiveQueries/sql.js +2 -2
- package/dist/row-query.js +1 -1
- package/dist/store-devtools.d.ts +4 -4
- package/dist/store-devtools.d.ts.map +1 -1
- package/dist/store-devtools.js +14 -14
- package/dist/store-devtools.js.map +1 -1
- package/dist/store.d.ts +3 -3
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +16 -16
- package/dist/store.js.map +1 -1
- package/package.json +5 -5
- package/src/{MainDatabaseWrapper.ts → SynchronousDatabaseWrapper.ts} +5 -5
- package/src/effect/LiveStore.ts +2 -2
- package/src/index.ts +2 -2
- package/src/reactiveQueries/sql.ts +2 -2
- package/src/row-query.ts +1 -1
- package/src/store-devtools.ts +18 -18
- package/src/store.ts +17 -17
- package/dist/MainDatabaseWrapper.d.ts.map +0 -1
- package/dist/MainDatabaseWrapper.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { DebugInfo,
|
|
1
|
+
import type { DebugInfo, MutableDebugInfo, PreparedBindValues, SynchronousDatabase } from '@livestore/common';
|
|
2
2
|
import type * as otel from '@opentelemetry/api';
|
|
3
3
|
export declare const emptyDebugInfo: () => DebugInfo;
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class SynchronousDatabaseWrapper {
|
|
5
5
|
private cachedStmts;
|
|
6
6
|
private tablesUsedCache;
|
|
7
7
|
private resultCache;
|
|
@@ -11,7 +11,7 @@ export declare class MainDatabaseWrapper {
|
|
|
11
11
|
private tablesUsedStmt;
|
|
12
12
|
debugInfo: MutableDebugInfo;
|
|
13
13
|
constructor({ db, otel, }: {
|
|
14
|
-
db:
|
|
14
|
+
db: SynchronousDatabase;
|
|
15
15
|
otel: {
|
|
16
16
|
tracer: otel.Tracer;
|
|
17
17
|
rootSpanContext: otel.Context;
|
|
@@ -33,4 +33,4 @@ export declare class MainDatabaseWrapper {
|
|
|
33
33
|
}): ReadonlyArray<T>;
|
|
34
34
|
export(): Uint8Array;
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=
|
|
36
|
+
//# sourceMappingURL=SynchronousDatabaseWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SynchronousDatabaseWrapper.d.ts","sourceRoot":"","sources":["../src/SynchronousDatabaseWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAElB,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAK/C,eAAO,MAAM,cAAc,QAAO,SAKhC,CAAA;AAEF,qBAAa,0BAA0B;IAErC,OAAO,CAAC,WAAW,CAA+C;IAClE,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,mBAAmB,CAAc;IACzC,OAAO,CAAC,cAAc,CAAA;IACf,SAAS,EAAE,gBAAgB,CAAmB;gBAEzC,EACV,EAAE,EACF,IAAI,GACL,EAAE;QACD,EAAE,EAAE,mBAAmB,CAAA;QACvB,IAAI,EAAE;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;YACnB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAA;SAC9B,CAAA;KACF;IAcD,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAqBrC,aAAa,CAAC,KAAK,EAAE,MAAM;IA4B3B,OAAO,CACL,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,kBAAkB,EAC/B,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,EACjC,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAA;KAAE,GAC/D;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE;IAkDzB,MAAM,CAAC,CAAC,GAAG,GAAG,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;QACnC,UAAU,CAAC,EAAE,kBAAkB,CAAA;QAC/B,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAA;KAC3B,GACA,aAAa,CAAC,CAAC,CAAC;IAkEnB,MAAM;CAQP"}
|
|
@@ -9,7 +9,7 @@ export const emptyDebugInfo = () => ({
|
|
|
9
9
|
queryFrameCount: 0,
|
|
10
10
|
events: new BoundArray(1000),
|
|
11
11
|
});
|
|
12
|
-
export class
|
|
12
|
+
export class SynchronousDatabaseWrapper {
|
|
13
13
|
// TODO: how many unique active statements are expected?
|
|
14
14
|
cachedStmts = new BoundMap(200);
|
|
15
15
|
tablesUsedCache = new BoundMap(200);
|
|
@@ -182,4 +182,4 @@ const tryGetTableNameFromPlainDeleteQuery = (query) => {
|
|
|
182
182
|
const [_, tableName] = query.trim().match(/^delete\s+from\s+(\w+)$/i) ?? [];
|
|
183
183
|
return tableName;
|
|
184
184
|
};
|
|
185
|
-
//# sourceMappingURL=
|
|
185
|
+
//# sourceMappingURL=SynchronousDatabaseWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SynchronousDatabaseWrapper.js","sourceRoot":"","sources":["../src/SynchronousDatabaseWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@ import type { Cause, Scope } from '@livestore/utils/effect';
|
|
|
4
4
|
import { Context, Deferred, Effect, Layer } from '@livestore/utils/effect';
|
|
5
5
|
import * as otel from '@opentelemetry/api';
|
|
6
6
|
import type { GraphQLSchema } from 'graphql';
|
|
7
|
-
import type { MainDatabaseWrapper } from '../MainDatabaseWrapper.js';
|
|
8
7
|
import type { LiveQuery } from '../reactiveQueries/base-class.js';
|
|
9
8
|
import type { BaseGraphQLContext, GraphQLOptions, OtelOptions, Store } from '../store.js';
|
|
9
|
+
import type { SynchronousDatabaseWrapper } from '../SynchronousDatabaseWrapper.js';
|
|
10
10
|
export type LiveStoreContext = LiveStoreContextRunning | {
|
|
11
11
|
stage: 'error';
|
|
12
12
|
error: UnexpectedError | unknown;
|
|
@@ -35,7 +35,7 @@ export type LiveStoreContextProps<GraphQLContext extends BaseGraphQLContext> = {
|
|
|
35
35
|
schema: LiveStoreSchema;
|
|
36
36
|
graphQLOptions?: {
|
|
37
37
|
schema: Effect.Effect<GraphQLSchema, never, otel.Tracer>;
|
|
38
|
-
makeContext: (db:
|
|
38
|
+
makeContext: (db: SynchronousDatabaseWrapper) => GraphQLContext;
|
|
39
39
|
};
|
|
40
40
|
boot?: (db: BootDb) => Effect.Effect<void, unknown, otel.Tracer>;
|
|
41
41
|
adapter: StoreAdapterFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveStore.d.ts","sourceRoot":"","sources":["../../src/effect/LiveStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACjG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAY,MAAM,EAAY,KAAK,EAAoB,MAAM,yBAAyB,CAAA;AAChH,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"LiveStore.d.ts","sourceRoot":"","sources":["../../src/effect/LiveStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveStore.js","sourceRoot":"","sources":["../../src/effect/LiveStore.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAChH,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"LiveStore.js","sourceRoot":"","sources":["../../src/effect/LiveStore.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAChH,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAK1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAgCzC,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAC,UAAU,CACvD,qDAAqD,CACtD,CAAA;AAGD,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC,UAAU,CACpD,kDAAkD,CACnD,CAAA;AAgBD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAA4C,EACiD,EAAE,CAC/F,KAAK,CAAC,MAAM,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CACrE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC3B,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAC,CACxC,CAAA;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAClD,oBAAoB,EACpB,QAAQ,CAAC,IAAI,EAA4C,CAC1D,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAA4C,EAC9E,MAAM,EACN,cAAc,EAAE,eAAe,EAC/B,IAAI,EACJ,OAAO,EACP,eAAe,EACf,YAAY,GAC0B,EAItC,EAAE,CACF,IAAI,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;IAEjD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAA;IAE3C,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,eAAe;QAC3C,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1G,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAE7B,qGAAqG;IACrG,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IAEvC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;QAC/B,MAAM;QACN,cAAc;QACd,WAAW,EAAE;YACX,MAAM,EAAE,UAAU;YAClB,eAAe,EAAE,mBAAmB;SACrC;QACD,IAAI;QACJ,OAAO;QACP,eAAe;QACf,QAAQ;QACR,YAAY;KACb,CAAC,CAAA;IAEF,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAA;IAE/B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAoC,CAAA;AACtE,CAAC,CAAC,EACF,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAC9G,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxG,+BAA+B;AAC/B,8BAA8B;AAC9B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACnC,MAAM,CAAC,QAAQ,CAAC,kDAAkD,CAAC,CACpE,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { Store, createStorePromise, createStore } from './store.js';
|
|
2
2
|
export type { BaseGraphQLContext, QueryDebugInfo, RefreshReason } from './store.js';
|
|
3
3
|
export type { QueryDefinition, LiveStoreCreateStoreOptions, LiveStoreContextRunning as LiveStoreContext, } from './effect/LiveStore.js';
|
|
4
|
-
export {
|
|
4
|
+
export { SynchronousDatabaseWrapper, emptyDebugInfo } from './SynchronousDatabaseWrapper.js';
|
|
5
5
|
export type { GetAtom, AtomDebugInfo, RefreshDebugInfo, ReactiveGraphSnapshot, SerializedAtom, SerializedEffect, Atom, Node, Ref, Effect, } from './reactive.js';
|
|
6
6
|
export { LiveStoreJSQuery, computed } from './reactiveQueries/js.js';
|
|
7
7
|
export { LiveStoreSQLQuery, querySQL } from './reactiveQueries/sql.js';
|
|
@@ -10,7 +10,7 @@ export { type GetAtomResult, type ReactivityGraph, makeReactivityGraph, type Liv
|
|
|
10
10
|
export { globalReactivityGraph } from './global-state.js';
|
|
11
11
|
export { type RowResult, type RowResultEncoded, rowQuery, deriveColQuery } from './row-query.js';
|
|
12
12
|
export * from '@livestore/common/schema';
|
|
13
|
-
export { sql, type BootDb, type BootStatus, type
|
|
13
|
+
export { sql, type BootDb, type BootStatus, type SynchronousDatabase, type DebugInfo, type MutableDebugInfo, prepareBindValues, type Bindable, type PreparedBindValues, } from '@livestore/common';
|
|
14
14
|
export { SqliteAst, SqliteDsl } from 'effect-db-schema';
|
|
15
15
|
export { deepEqual } from '@livestore/utils';
|
|
16
16
|
export type { StoreAdapter as DatabaseImpl, StoreAdapterFactory as DatabaseFactory, PreparedStatement, } from '@livestore/common';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACnE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEnF,YAAY,EACV,eAAe,EACf,2BAA2B,EAC3B,uBAAuB,IAAI,gBAAgB,GAC5C,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACnE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEnF,YAAY,EACV,eAAe,EACf,2BAA2B,EAC3B,uBAAuB,IAAI,gBAAgB,GAC5C,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAE5F,YAAY,EACV,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,MAAM,GACP,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAClF,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,mBAAmB,EACnB,KAAK,SAAS,GACf,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEhG,cAAc,0BAA0B,CAAA;AACxC,OAAO,EACL,GAAG,EACH,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,KAAK,QAAQ,EACb,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,YAAY,EACV,YAAY,IAAI,YAAY,EAC5B,mBAAmB,IAAI,eAAe,EACtC,iBAAiB,GAClB,MAAM,mBAAmB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Store, createStorePromise, createStore } from './store.js';
|
|
2
|
-
export {
|
|
2
|
+
export { SynchronousDatabaseWrapper, emptyDebugInfo } from './SynchronousDatabaseWrapper.js';
|
|
3
3
|
export { LiveStoreJSQuery, computed } from './reactiveQueries/js.js';
|
|
4
4
|
export { LiveStoreSQLQuery, querySQL } from './reactiveQueries/sql.js';
|
|
5
5
|
export { LiveStoreGraphQLQuery, queryGraphQL } from './reactiveQueries/graphql.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AASnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AASnE,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAc5F,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAClF,OAAO,EAGL,mBAAmB,GAEpB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,OAAO,EAAyC,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEhG,cAAc,0BAA0B,CAAA;AACxC,OAAO,EACL,GAAG,EAMH,iBAAiB,GAGlB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -78,7 +78,7 @@ export class LiveStoreSQLQuery extends LiveStoreQueryBase {
|
|
|
78
78
|
? queryString$OrQueryString
|
|
79
79
|
: get(queryString$OrQueryString, otelContext);
|
|
80
80
|
if (queriedTablesRef.current === undefined) {
|
|
81
|
-
queriedTablesRef.current = store.
|
|
81
|
+
queriedTablesRef.current = store.syncDbWrapper.getTablesUsed(sqlString);
|
|
82
82
|
}
|
|
83
83
|
// Establish a reactive dependency on the tables used in the query
|
|
84
84
|
for (const tableName of queriedTablesRef.current) {
|
|
@@ -87,7 +87,7 @@ export class LiveStoreSQLQuery extends LiveStoreQueryBase {
|
|
|
87
87
|
}
|
|
88
88
|
span.setAttribute('sql.query', sqlString);
|
|
89
89
|
span.updateName(`sql:${sqlString.slice(0, 50)}`);
|
|
90
|
-
const rawResults = store.
|
|
90
|
+
const rawResults = store.syncDbWrapper.select(sqlString, {
|
|
91
91
|
queriedTables,
|
|
92
92
|
bindValues: bindValues ? prepareBindValues(bindValues, sqlString) : undefined,
|
|
93
93
|
otelContext,
|
package/dist/row-query.js
CHANGED
|
@@ -60,7 +60,7 @@ const makeExecBeforeFirstRun = ({ id, defaultValues, skipInsertDefaultRow, otelC
|
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
62
|
const insertRowWithDefaultValuesOrIgnore = ({ store, id, table, otelContext, explicitDefaultValues, }) => {
|
|
63
|
-
const rowExists = store.
|
|
63
|
+
const rowExists = store.syncDbWrapper.select(`select 1 from ${table.sqliteDef.name} where id = '${id}'`).length === 1;
|
|
64
64
|
if (rowExists)
|
|
65
65
|
return;
|
|
66
66
|
// const mutationDef = deriveCreateMutationDef(table)
|
package/dist/store-devtools.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import type { StoreAdapter } from '@livestore/common';
|
|
2
2
|
import { Devtools, UnexpectedError } from '@livestore/common';
|
|
3
|
-
import type {
|
|
3
|
+
import type { WebChannel } from '@livestore/utils/effect';
|
|
4
4
|
import { Effect } from '@livestore/utils/effect';
|
|
5
|
-
import type { MainDatabaseWrapper } from './MainDatabaseWrapper.js';
|
|
6
5
|
import type { LiveQuery, ReactivityGraph } from './reactiveQueries/base-class.js';
|
|
6
|
+
import type { SynchronousDatabaseWrapper } from './SynchronousDatabaseWrapper.js';
|
|
7
7
|
import type { ReferenceCountedSet } from './utils/data-structures.js';
|
|
8
8
|
type IStore = {
|
|
9
9
|
adapter: StoreAdapter;
|
|
10
10
|
reactivityGraph: ReactivityGraph;
|
|
11
|
-
|
|
11
|
+
syncDbWrapper: SynchronousDatabaseWrapper;
|
|
12
12
|
activeQueries: ReferenceCountedSet<LiveQuery<any>>;
|
|
13
13
|
};
|
|
14
14
|
export declare const connectDevtoolsToStore: ({ storeDevtoolsChannel, store, }: {
|
|
15
|
-
storeDevtoolsChannel:
|
|
15
|
+
storeDevtoolsChannel: WebChannel.WebChannel<Devtools.MessageToAppHostStore, Devtools.MessageFromAppHostStore>;
|
|
16
16
|
store: IStore;
|
|
17
17
|
}) => Effect.Effect<void, UnexpectedError, never>;
|
|
18
18
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-devtools.d.ts","sourceRoot":"","sources":["../src/store-devtools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAoB,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE/E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"store-devtools.d.ts","sourceRoot":"","sources":["../src/store-devtools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAoB,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,MAAM,EAAU,MAAM,yBAAyB,CAAA;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAEjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAErE,KAAK,MAAM,GAAG;IACZ,OAAO,EAAE,YAAY,CAAA;IACrB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,0BAA0B,CAAA;IACzC,aAAa,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;CACnD,CAAA;AAMD,eAAO,MAAM,sBAAsB,qCAGhC;IACD,oBAAoB,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAA;IAC7G,KAAK,EAAE,MAAM,CAAA;CACd,gDAmLsG,CAAA"}
|
package/dist/store-devtools.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { Devtools, liveStoreVersion, UnexpectedError } from '@livestore/common';
|
|
2
2
|
import { throttle } from '@livestore/utils';
|
|
3
3
|
import { Effect, Stream } from '@livestore/utils/effect';
|
|
4
|
-
import { emptyDebugInfo as makeEmptyDebugInfo } from './MainDatabaseWrapper.js';
|
|
5
4
|
import { NOT_REFRESHED_YET } from './reactive.js';
|
|
5
|
+
import { emptyDebugInfo as makeEmptyDebugInfo } from './SynchronousDatabaseWrapper.js';
|
|
6
6
|
export const connectDevtoolsToStore = ({ storeDevtoolsChannel, store, }) => Effect.gen(function* () {
|
|
7
|
-
const
|
|
7
|
+
const appHostId = store.adapter.coordinator.devtools.appHostId;
|
|
8
8
|
const reactivityGraphSubcriptions = new Map();
|
|
9
9
|
const liveQueriesSubscriptions = new Map();
|
|
10
10
|
const debugInfoHistorySubscriptions = new Map();
|
|
11
11
|
const sendToDevtools = (message) => storeDevtoolsChannel.send(message).pipe(Effect.tapCauseLogPretty, Effect.runSync);
|
|
12
12
|
const onMessage = (decodedMessage) => {
|
|
13
13
|
// console.log('storeMessagePort message', decodedMessage)
|
|
14
|
-
if (decodedMessage.
|
|
14
|
+
if (decodedMessage.appHostId !== store.adapter.coordinator.devtools.appHostId) {
|
|
15
15
|
// console.log(`Unknown message`, event)
|
|
16
16
|
return;
|
|
17
17
|
}
|
|
@@ -26,7 +26,7 @@ export const connectDevtoolsToStore = ({ storeDevtoolsChannel, store, }) => Effe
|
|
|
26
26
|
requestIdleCallback(() => sendToDevtools(Devtools.ReactivityGraphRes.make({
|
|
27
27
|
reactivityGraph: store.reactivityGraph.getSnapshot({ includeResults }),
|
|
28
28
|
requestId,
|
|
29
|
-
|
|
29
|
+
appHostId,
|
|
30
30
|
liveStoreVersion,
|
|
31
31
|
})), { timeout: 500 });
|
|
32
32
|
send();
|
|
@@ -39,9 +39,9 @@ export const connectDevtoolsToStore = ({ storeDevtoolsChannel, store, }) => Effe
|
|
|
39
39
|
}
|
|
40
40
|
case 'LSD.DebugInfoReq': {
|
|
41
41
|
sendToDevtools(Devtools.DebugInfoRes.make({
|
|
42
|
-
debugInfo: store.
|
|
42
|
+
debugInfo: store.syncDbWrapper.debugInfo,
|
|
43
43
|
requestId,
|
|
44
|
-
|
|
44
|
+
appHostId,
|
|
45
45
|
liveStoreVersion,
|
|
46
46
|
}));
|
|
47
47
|
break;
|
|
@@ -51,17 +51,17 @@ export const connectDevtoolsToStore = ({ storeDevtoolsChannel, store, }) => Effe
|
|
|
51
51
|
let hasStopped = false;
|
|
52
52
|
let rafHandle;
|
|
53
53
|
const tick = () => {
|
|
54
|
-
buffer.push(store.
|
|
54
|
+
buffer.push(store.syncDbWrapper.debugInfo);
|
|
55
55
|
// NOTE this resets the debug info, so all other "readers" e.g. in other `requestAnimationFrame` loops,
|
|
56
56
|
// will get the empty debug info
|
|
57
57
|
// TODO We need to come up with a more graceful way to do store. Probably via a single global
|
|
58
58
|
// `requestAnimationFrame` loop that is passed in somehow.
|
|
59
|
-
store.
|
|
59
|
+
store.syncDbWrapper.debugInfo = makeEmptyDebugInfo();
|
|
60
60
|
if (buffer.length > 10) {
|
|
61
61
|
sendToDevtools(Devtools.DebugInfoHistoryRes.make({
|
|
62
62
|
debugInfoHistory: buffer,
|
|
63
63
|
requestId,
|
|
64
|
-
|
|
64
|
+
appHostId,
|
|
65
65
|
liveStoreVersion,
|
|
66
66
|
}));
|
|
67
67
|
buffer.length = 0;
|
|
@@ -86,14 +86,14 @@ export const connectDevtoolsToStore = ({ storeDevtoolsChannel, store, }) => Effe
|
|
|
86
86
|
break;
|
|
87
87
|
}
|
|
88
88
|
case 'LSD.DebugInfoResetReq': {
|
|
89
|
-
store.
|
|
90
|
-
sendToDevtools(Devtools.DebugInfoResetRes.make({ requestId,
|
|
89
|
+
store.syncDbWrapper.debugInfo.slowQueries.clear();
|
|
90
|
+
sendToDevtools(Devtools.DebugInfoResetRes.make({ requestId, appHostId, liveStoreVersion }));
|
|
91
91
|
break;
|
|
92
92
|
}
|
|
93
93
|
case 'LSD.DebugInfoRerunQueryReq': {
|
|
94
94
|
const { queryStr, bindValues, queriedTables } = decodedMessage;
|
|
95
|
-
store.
|
|
96
|
-
sendToDevtools(Devtools.DebugInfoRerunQueryRes.make({ requestId,
|
|
95
|
+
store.syncDbWrapper.select(queryStr, { bindValues, queriedTables, skipCache: true });
|
|
96
|
+
sendToDevtools(Devtools.DebugInfoRerunQueryRes.make({ requestId, appHostId, liveStoreVersion }));
|
|
97
97
|
break;
|
|
98
98
|
}
|
|
99
99
|
case 'LSD.ReactivityGraphUnsubscribe': {
|
|
@@ -115,7 +115,7 @@ export const connectDevtoolsToStore = ({ storeDevtoolsChannel, store, }) => Effe
|
|
|
115
115
|
})),
|
|
116
116
|
requestId,
|
|
117
117
|
liveStoreVersion,
|
|
118
|
-
|
|
118
|
+
appHostId,
|
|
119
119
|
})), { timeout: 500 });
|
|
120
120
|
send();
|
|
121
121
|
// Same as in the reactivity graph subscription case above, we need to throttle the updates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-devtools.js","sourceRoot":"","sources":["../src/store-devtools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"store-devtools.js","sourceRoot":"","sources":["../src/store-devtools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAGjD,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AActF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACrC,oBAAoB,EACpB,KAAK,GAIN,EAAE,EAAE,CACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAA;IAE9D,MAAM,2BAA2B,GAAW,IAAI,GAAG,EAAE,CAAA;IACrD,MAAM,wBAAwB,GAAW,IAAI,GAAG,EAAE,CAAA;IAClD,MAAM,6BAA6B,GAAW,IAAI,GAAG,EAAE,CAAA;IAEvD,MAAM,cAAc,GAAG,CAAC,OAAyC,EAAE,EAAE,CACnE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAEnF,MAAM,SAAS,GAAG,CAAC,cAA0D,EAAE,EAAE;QAC/E,0DAA0D;QAE1D,IAAI,cAAc,CAAC,SAAS,KAAK,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC9E,wCAAwC;YACxC,OAAM;QACR,CAAC;QAED,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAA;QAE1C,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,CAAC,CAAC,EAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QAElF,QAAQ,cAAc,CAAC,IAAI,EAAE,CAAC;YAC5B,KAAK,8BAA8B,CAAC,CAAC,CAAC;gBACpC,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,CAAA;gBAEpD,MAAM,IAAI,GAAG,GAAG,EAAE;gBAChB,gFAAgF;gBAChF,uDAAuD;gBACvD,mBAAmB,CACjB,GAAG,EAAE,CACH,cAAc,CACZ,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC;oBAC/B,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;oBACtE,SAAS;oBACT,SAAS;oBACT,gBAAgB;iBACjB,CAAC,CACH,EACH,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAA;gBAEH,IAAI,EAAE,CAAA;gBAEN,0FAA0F;gBAC1F,4DAA4D;gBAC5D,yFAAyF;gBACzF,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;gBAExC,2BAA2B,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAA;gBAEnG,MAAK;YACP,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,cAAc,CACZ,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC;oBACzB,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS;oBACxC,SAAS;oBACT,SAAS;oBACT,gBAAgB;iBACjB,CAAC,CACH,CAAA;gBACD,MAAK;YACP,CAAC;YACD,KAAK,+BAA+B,CAAC,CAAC,CAAC;gBACrC,MAAM,MAAM,GAAgB,EAAE,CAAA;gBAC9B,IAAI,UAAU,GAAG,KAAK,CAAA;gBACtB,IAAI,SAA6B,CAAA;gBAEjC,MAAM,IAAI,GAAG,GAAG,EAAE;oBAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;oBAE1C,uGAAuG;oBACvG,gCAAgC;oBAChC,6FAA6F;oBAC7F,0DAA0D;oBAC1D,KAAK,CAAC,aAAa,CAAC,SAAS,GAAG,kBAAkB,EAAE,CAAA;oBAEpD,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;wBACvB,cAAc,CACZ,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC;4BAChC,gBAAgB,EAAE,MAAM;4BACxB,SAAS;4BACT,SAAS;4BACT,gBAAgB;yBACjB,CAAC,CACH,CAAA;wBACD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;oBACnB,CAAC;oBAED,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;wBACzB,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;oBACzC,CAAC;gBACH,CAAC,CAAA;gBAED,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;gBAEvC,MAAM,KAAK,GAAG,GAAG,EAAE;oBACjB,UAAU,GAAG,IAAI,CAAA;oBACjB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;wBAC5B,oBAAoB,CAAC,SAAS,CAAC,CAAA;oBACjC,CAAC;gBACH,CAAC,CAAA;gBAED,6BAA6B,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;gBAEnD,MAAK;YACP,CAAC;YACD,KAAK,iCAAiC,CAAC,CAAC,CAAC;gBACvC,6BAA6B,CAAC,GAAG,CAAC,SAAS,CAAE,EAAE,CAAA;gBAC/C,6BAA6B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBAC/C,MAAK;YACP,CAAC;YACD,KAAK,uBAAuB,CAAC,CAAC,CAAC;gBAC7B,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;gBACjD,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAA;gBAC3F,MAAK;YACP,CAAC;YACD,KAAK,4BAA4B,CAAC,CAAC,CAAC;gBAClC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,cAAc,CAAA;gBAC9D,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBACpF,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAA;gBAChG,MAAK;YACP,CAAC;YACD,KAAK,gCAAgC,CAAC,CAAC,CAAC;gBACtC,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAE,EAAE,CAAA;gBAC7C,MAAK;YACP,CAAC;YACD,KAAK,0BAA0B,CAAC,CAAC,CAAC;gBAChC,MAAM,IAAI,GAAG,GAAG,EAAE,CAChB,mBAAmB,CACjB,GAAG,EAAE,CACH,cAAc,CACZ,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC;oBAC3B,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAChD,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,cAAc,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC7E,aAAa,EACX,CAAC,CAAC,QAAQ,CAAC,cAAc,KAAK,iBAAiB;4BAC7C,CAAC,CAAC,0BAA0B;4BAC5B,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc;wBAC/B,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC;qBACvD,CAAC,CAAC;oBACH,SAAS;oBACT,gBAAgB;oBAChB,SAAS;iBACV,CAAC,CACH,EACH,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAA;gBAEH,IAAI,EAAE,CAAA;gBAEN,2FAA2F;gBAC3F,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;gBAExC,wBAAwB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAA;gBAEhG,MAAK;YACP,CAAC;YACD,KAAK,4BAA4B,CAAC,CAAC,CAAC;gBAClC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAE,EAAE,CAAA;gBAC1C,wBAAwB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBAC1C,MAAK;YACP,CAAC;YACD,aAAa;QACf,CAAC;IACH,CAAC,CAAA;IAED,KAAK,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CACrC,MAAM,CAAC,OAAO,EAAE,EAChB,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAC/C,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAC1C,CAAA;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,MAAM,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC,CAAA"}
|
package/dist/store.d.ts
CHANGED
|
@@ -4,10 +4,10 @@ import type { LiveStoreSchema, MutationEvent } from '@livestore/common/schema';
|
|
|
4
4
|
import { Effect, FiberSet, Inspectable, Schema, Scope } from '@livestore/utils/effect';
|
|
5
5
|
import * as otel from '@opentelemetry/api';
|
|
6
6
|
import type { GraphQLSchema } from 'graphql';
|
|
7
|
-
import { MainDatabaseWrapper } from './MainDatabaseWrapper.js';
|
|
8
7
|
import type { StackInfo } from './react/utils/stack-info.js';
|
|
9
8
|
import type { DebugRefreshReasonBase, Ref } from './reactive.js';
|
|
10
9
|
import type { LiveQuery, QueryContext, ReactivityGraph } from './reactiveQueries/base-class.js';
|
|
10
|
+
import { SynchronousDatabaseWrapper } from './SynchronousDatabaseWrapper.js';
|
|
11
11
|
import { ReferenceCountedSet } from './utils/data-structures.js';
|
|
12
12
|
export type BaseGraphQLContext = {
|
|
13
13
|
queriedTables: Set<string>;
|
|
@@ -16,7 +16,7 @@ export type BaseGraphQLContext = {
|
|
|
16
16
|
};
|
|
17
17
|
export type GraphQLOptions<TContext> = {
|
|
18
18
|
schema: GraphQLSchema;
|
|
19
|
-
makeContext: (db:
|
|
19
|
+
makeContext: (db: SynchronousDatabaseWrapper, tracer: otel.Tracer) => TContext;
|
|
20
20
|
};
|
|
21
21
|
export type OtelOptions = {
|
|
22
22
|
tracer: otel.Tracer;
|
|
@@ -84,7 +84,7 @@ export declare class Store<TGraphQLContext extends BaseGraphQLContext = BaseGrap
|
|
|
84
84
|
id: string;
|
|
85
85
|
private fiberSet;
|
|
86
86
|
reactivityGraph: ReactivityGraph;
|
|
87
|
-
|
|
87
|
+
syncDbWrapper: SynchronousDatabaseWrapper;
|
|
88
88
|
adapter: StoreAdapter;
|
|
89
89
|
schema: LiveStoreSchema;
|
|
90
90
|
graphQLSchema?: GraphQLSchema;
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,YAAY,EAEZ,SAAS,EACT,YAAY,EACZ,mBAAmB,EAEpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA8C,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAI9E,OAAO,EAGL,MAAM,EAEN,QAAQ,EACR,WAAW,EAOX,MAAM,EACN,KAAK,EAEN,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/store.js
CHANGED
|
@@ -4,8 +4,8 @@ import { assertNever, makeNoopTracer, shouldNeverHappen } from '@livestore/utils
|
|
|
4
4
|
import { Deferred, Duration, Effect, Exit, FiberSet, Inspectable, Layer, Logger, LogLevel, OtelTracer, Queue, Runtime, Schema, Scope, Stream, } from '@livestore/utils/effect';
|
|
5
5
|
import * as otel from '@opentelemetry/api';
|
|
6
6
|
import { globalReactivityGraph } from './global-state.js';
|
|
7
|
-
import { MainDatabaseWrapper } from './MainDatabaseWrapper.js';
|
|
8
7
|
import { connectDevtoolsToStore } from './store-devtools.js';
|
|
8
|
+
import { SynchronousDatabaseWrapper } from './SynchronousDatabaseWrapper.js';
|
|
9
9
|
import { ReferenceCountedSet } from './utils/data-structures.js';
|
|
10
10
|
import { downloadBlob } from './utils/dev.js';
|
|
11
11
|
import { getDurationMsFromSpan } from './utils/otel.js';
|
|
@@ -19,7 +19,7 @@ export class Store extends Inspectable.Class {
|
|
|
19
19
|
id = uniqueStoreId();
|
|
20
20
|
fiberSet;
|
|
21
21
|
reactivityGraph;
|
|
22
|
-
|
|
22
|
+
syncDbWrapper;
|
|
23
23
|
adapter;
|
|
24
24
|
schema;
|
|
25
25
|
graphQLSchema;
|
|
@@ -39,7 +39,7 @@ export class Store extends Inspectable.Class {
|
|
|
39
39
|
// #region constructor
|
|
40
40
|
constructor({ adapter, schema, graphQLOptions, reactivityGraph, otelOptions, disableDevtools, __processedMutationIds, fiberSet, }) {
|
|
41
41
|
super();
|
|
42
|
-
this.
|
|
42
|
+
this.syncDbWrapper = new SynchronousDatabaseWrapper({ otel: otelOptions, db: adapter.syncDb });
|
|
43
43
|
this.adapter = adapter;
|
|
44
44
|
this.schema = schema;
|
|
45
45
|
this.fiberSet = fiberSet;
|
|
@@ -83,7 +83,7 @@ export class Store extends Inspectable.Class {
|
|
|
83
83
|
}
|
|
84
84
|
if (graphQLOptions) {
|
|
85
85
|
this.graphQLSchema = graphQLOptions.schema;
|
|
86
|
-
this.graphQLContext = graphQLOptions.makeContext(this.
|
|
86
|
+
this.graphQLContext = graphQLOptions.makeContext(this.syncDbWrapper, this.otel.tracer);
|
|
87
87
|
}
|
|
88
88
|
Effect.gen(this, function* () {
|
|
89
89
|
yield* this.adapter.coordinator.syncMutations.pipe(Stream.tapSync((mutationEventDecoded) => {
|
|
@@ -214,7 +214,7 @@ export class Store extends Inspectable.Class {
|
|
|
214
214
|
};
|
|
215
215
|
if (mutationsEvents.length > 1) {
|
|
216
216
|
// TODO: what to do about coordinator transaction here?
|
|
217
|
-
this.
|
|
217
|
+
this.syncDbWrapper.txn(applyMutations);
|
|
218
218
|
}
|
|
219
219
|
else {
|
|
220
220
|
applyMutations();
|
|
@@ -296,10 +296,10 @@ export class Store extends Inspectable.Class {
|
|
|
296
296
|
const mutationDef = this.schema.mutations.get(mutationEventDecoded.mutation) ??
|
|
297
297
|
shouldNeverHappen(`Unknown mutation type: ${mutationEventDecoded.mutation}`);
|
|
298
298
|
const execArgsArr = getExecArgsFromMutation({ mutationDef, mutationEventDecoded });
|
|
299
|
-
for (const { statementSql, bindValues, writeTables = this.
|
|
299
|
+
for (const { statementSql, bindValues, writeTables = this.syncDbWrapper.getTablesUsed(statementSql), } of execArgsArr) {
|
|
300
300
|
// TODO when the store doesn't have the lock, we need wait for the coordinator to confirm the mutation
|
|
301
301
|
// before executing the mutation on the main db
|
|
302
|
-
const { durationMs } = this.
|
|
302
|
+
const { durationMs } = this.syncDbWrapper.execute(statementSql, bindValues, writeTables, { otelContext });
|
|
303
303
|
durationMsTotal += durationMs;
|
|
304
304
|
writeTables.forEach((table) => allWriteTables.add(table));
|
|
305
305
|
}
|
|
@@ -323,11 +323,11 @@ export class Store extends Inspectable.Class {
|
|
|
323
323
|
* all app writes should go through mutate.
|
|
324
324
|
*/
|
|
325
325
|
execute = (query, params = {}, writeTables, otelContext) => {
|
|
326
|
-
this.
|
|
326
|
+
this.syncDbWrapper.execute(query, prepareBindValues(params, query), writeTables, { otelContext });
|
|
327
327
|
this.adapter.coordinator.execute(query, prepareBindValues(params, query)).pipe(runEffectFork);
|
|
328
328
|
};
|
|
329
329
|
select = (query, params = {}) => {
|
|
330
|
-
return this.
|
|
330
|
+
return this.syncDbWrapper.select(query, { bindValues: prepareBindValues(params, query) });
|
|
331
331
|
};
|
|
332
332
|
makeTableRef = (tableName) => this.reactivityGraph.makeRef(null, {
|
|
333
333
|
equal: () => false,
|
|
@@ -335,7 +335,7 @@ export class Store extends Inspectable.Class {
|
|
|
335
335
|
meta: { liveStoreRefType: 'table' },
|
|
336
336
|
});
|
|
337
337
|
__devDownloadDb = () => {
|
|
338
|
-
const data = this.
|
|
338
|
+
const data = this.syncDbWrapper.export();
|
|
339
339
|
downloadBlob(data, `livestore-${Date.now()}.db`);
|
|
340
340
|
};
|
|
341
341
|
__devDownloadMutationLogDb = async () => {
|
|
@@ -401,7 +401,7 @@ export const createStore = ({ schema, graphQLOptions, otelOptions, adapter: adap
|
|
|
401
401
|
const bootDbImpl = {
|
|
402
402
|
_tag: 'BootDb',
|
|
403
403
|
execute: (queryStr, bindValues) => {
|
|
404
|
-
const stmt = adapter.
|
|
404
|
+
const stmt = adapter.syncDb.prepare(queryStr);
|
|
405
405
|
stmt.execute(bindValues);
|
|
406
406
|
if (isInTxn === true) {
|
|
407
407
|
txnExecuteStmnts.push([queryStr, bindValues]);
|
|
@@ -418,7 +418,7 @@ export const createStore = ({ schema, graphQLOptions, otelOptions, adapter: adap
|
|
|
418
418
|
const execArgsArr = getExecArgsFromMutation({ mutationDef, mutationEventDecoded });
|
|
419
419
|
// const { bindValues, statementSql } = getExecArgsFromMutation({ mutationDef, mutationEventDecoded })
|
|
420
420
|
for (const { statementSql, bindValues } of execArgsArr) {
|
|
421
|
-
adapter.
|
|
421
|
+
adapter.syncDb.execute(statementSql, bindValues);
|
|
422
422
|
}
|
|
423
423
|
const mutationEventEncoded = Schema.encodeUnknownSync(mutationEventSchema)(mutationEventDecoded);
|
|
424
424
|
adapter.coordinator
|
|
@@ -427,15 +427,15 @@ export const createStore = ({ schema, graphQLOptions, otelOptions, adapter: adap
|
|
|
427
427
|
}
|
|
428
428
|
},
|
|
429
429
|
select: (queryStr, bindValues) => {
|
|
430
|
-
const stmt = adapter.
|
|
430
|
+
const stmt = adapter.syncDb.prepare(queryStr);
|
|
431
431
|
return stmt.select(bindValues);
|
|
432
432
|
},
|
|
433
433
|
txn: (callback) => {
|
|
434
434
|
try {
|
|
435
435
|
isInTxn = true;
|
|
436
|
-
adapter.
|
|
436
|
+
adapter.syncDb.execute('BEGIN', undefined);
|
|
437
437
|
callback();
|
|
438
|
-
adapter.
|
|
438
|
+
adapter.syncDb.execute('COMMIT', undefined);
|
|
439
439
|
// adapter.coordinator.execute('BEGIN', undefined, undefined)
|
|
440
440
|
for (const [queryStr, bindValues] of txnExecuteStmnts) {
|
|
441
441
|
adapter.coordinator.execute(queryStr, bindValues).pipe(runEffectFork);
|
|
@@ -443,7 +443,7 @@ export const createStore = ({ schema, graphQLOptions, otelOptions, adapter: adap
|
|
|
443
443
|
// adapter.coordinator.execute('COMMIT', undefined, undefined)
|
|
444
444
|
}
|
|
445
445
|
catch (e) {
|
|
446
|
-
adapter.
|
|
446
|
+
adapter.syncDb.execute('ROLLBACK', undefined);
|
|
447
447
|
throw e;
|
|
448
448
|
}
|
|
449
449
|
finally {
|