@livestore/livestore 0.3.0-dev.11 → 0.3.0-dev.5
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/SynchronousDatabaseWrapper.d.ts +5 -14
- package/dist/SynchronousDatabaseWrapper.d.ts.map +1 -1
- package/dist/SynchronousDatabaseWrapper.js +4 -24
- package/dist/SynchronousDatabaseWrapper.js.map +1 -1
- package/dist/effect/LiveStore.d.ts +8 -12
- package/dist/effect/LiveStore.d.ts.map +1 -1
- package/dist/effect/LiveStore.js +3 -13
- package/dist/effect/LiveStore.js.map +1 -1
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/live-queries/base-class.d.ts +21 -64
- package/dist/live-queries/base-class.d.ts.map +1 -1
- package/dist/live-queries/base-class.js +13 -56
- package/dist/live-queries/base-class.js.map +1 -1
- package/dist/live-queries/computed.d.ts +7 -7
- package/dist/live-queries/computed.d.ts.map +1 -1
- package/dist/live-queries/computed.js +11 -35
- package/dist/live-queries/computed.js.map +1 -1
- package/dist/live-queries/db.d.ts +15 -12
- package/dist/live-queries/db.d.ts.map +1 -1
- package/dist/live-queries/db.js +25 -44
- package/dist/live-queries/db.js.map +1 -1
- package/dist/live-queries/db.test.js +14 -16
- package/dist/live-queries/db.test.js.map +1 -1
- package/dist/live-queries/graphql.d.ts +8 -8
- package/dist/live-queries/graphql.d.ts.map +1 -1
- package/dist/live-queries/graphql.js +9 -35
- package/dist/live-queries/graphql.js.map +1 -1
- package/dist/reactive.d.ts +13 -15
- package/dist/reactive.d.ts.map +1 -1
- package/dist/reactive.js +9 -15
- package/dist/reactive.js.map +1 -1
- package/dist/row-query-utils.d.ts +4 -4
- package/dist/row-query-utils.d.ts.map +1 -1
- package/dist/row-query-utils.js +10 -14
- package/dist/row-query-utils.js.map +1 -1
- package/dist/store/create-store.d.ts +4 -3
- package/dist/store/create-store.d.ts.map +1 -1
- package/dist/store/create-store.js +7 -7
- package/dist/store/create-store.js.map +1 -1
- package/dist/store/devtools.d.ts +2 -2
- package/dist/store/devtools.d.ts.map +1 -1
- package/dist/store/devtools.js +15 -15
- package/dist/store/devtools.js.map +1 -1
- package/dist/store/store-types.d.ts +5 -10
- package/dist/store/store-types.d.ts.map +1 -1
- package/dist/store/store-types.js.map +1 -1
- package/dist/store/store.d.ts +16 -34
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +77 -129
- package/dist/store/store.js.map +1 -1
- package/dist/utils/stack-info.d.ts.map +1 -1
- package/dist/utils/stack-info.js +1 -6
- package/dist/utils/stack-info.js.map +1 -1
- package/dist/utils/stack-info.test.js +1 -54
- package/dist/utils/stack-info.test.js.map +1 -1
- package/dist/utils/tests/fixture.d.ts +6 -2
- package/dist/utils/tests/fixture.d.ts.map +1 -1
- package/dist/utils/tests/fixture.js +5 -3
- package/dist/utils/tests/fixture.js.map +1 -1
- package/dist/utils/tests/mod.d.ts +0 -1
- package/dist/utils/tests/mod.d.ts.map +1 -1
- package/dist/utils/tests/mod.js +0 -1
- package/dist/utils/tests/mod.js.map +1 -1
- package/package.json +12 -12
- package/src/{SqliteDbWrapper.ts → SynchronousDatabaseWrapper.ts} +11 -41
- package/src/effect/LiveStore.ts +15 -26
- package/src/global-state.ts +20 -0
- package/src/index.ts +7 -14
- package/src/live-queries/__snapshots__/{db-query.test.ts.snap → db.test.ts.snap} +42 -196
- package/src/live-queries/base-class.ts +40 -160
- package/src/live-queries/computed.ts +19 -45
- package/src/live-queries/{db-query.test.ts → db.test.ts} +11 -21
- package/src/live-queries/{db-query.ts → db.ts} +39 -97
- package/src/live-queries/graphql.ts +21 -47
- package/src/reactive.ts +27 -52
- package/src/row-query-utils.ts +18 -29
- package/src/store/create-store.ts +23 -20
- package/src/store/devtools.ts +17 -17
- package/src/store/store-types.ts +5 -7
- package/src/store/store.ts +122 -231
- package/src/utils/stack-info.test.ts +1 -58
- package/src/utils/stack-info.ts +1 -6
- package/src/utils/tests/fixture.ts +7 -2
- package/src/utils/tests/mod.ts +0 -1
- package/dist/SqliteDbWrapper.d.ts +0 -54
- package/dist/SqliteDbWrapper.d.ts.map +0 -1
- package/dist/SqliteDbWrapper.js +0 -212
- package/dist/SqliteDbWrapper.js.map +0 -1
- package/dist/__tests__/fixture.d.ts +0 -252
- package/dist/__tests__/fixture.d.ts.map +0 -1
- package/dist/__tests__/fixture.js +0 -18
- package/dist/__tests__/fixture.js.map +0 -1
- package/dist/live-queries/db-query.d.ts +0 -67
- package/dist/live-queries/db-query.d.ts.map +0 -1
- package/dist/live-queries/db-query.js +0 -244
- package/dist/live-queries/db-query.js.map +0 -1
- package/dist/live-queries/db-query.test.d.ts +0 -2
- package/dist/live-queries/db-query.test.d.ts.map +0 -1
- package/dist/live-queries/db-query.test.js +0 -123
- package/dist/live-queries/db-query.test.js.map +0 -1
- package/dist/live-queries/make-ref.d.ts +0 -20
- package/dist/live-queries/make-ref.d.ts.map +0 -1
- package/dist/live-queries/make-ref.js +0 -33
- package/dist/live-queries/make-ref.js.map +0 -1
- package/dist/store/store.test.d.ts +0 -2
- package/dist/store/store.test.d.ts.map +0 -1
- package/dist/store/store.test.js +0 -27
- package/dist/store/store.test.js.map +0 -1
- package/dist/utils/expo.d.ts +0 -2
- package/dist/utils/expo.d.ts.map +0 -1
- package/dist/utils/expo.js +0 -8
- package/dist/utils/expo.js.map +0 -1
- package/dist/utils/function-string.d.ts +0 -7
- package/dist/utils/function-string.d.ts.map +0 -1
- package/dist/utils/function-string.js +0 -9
- package/dist/utils/function-string.js.map +0 -1
- package/src/live-queries/make-ref.ts +0 -47
- package/src/utils/function-string.ts +0 -12
@@ -1,8 +1,7 @@
|
|
1
|
-
import type { DebugInfo, MutableDebugInfo, PreparedBindValues,
|
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 SynchronousDatabaseWrapper
|
5
|
-
_tag: "SynchronousDatabase";
|
4
|
+
export declare class SynchronousDatabaseWrapper {
|
6
5
|
private cachedStmts;
|
7
6
|
private tablesUsedCache;
|
8
7
|
private resultCache;
|
@@ -18,13 +17,6 @@ export declare class SynchronousDatabaseWrapper implements SynchronousDatabase {
|
|
18
17
|
rootSpanContext: otel.Context;
|
19
18
|
};
|
20
19
|
});
|
21
|
-
metadata: any;
|
22
|
-
prepare(queryStr: string): PreparedStatement;
|
23
|
-
import(data: Uint8Array<ArrayBufferLike> | SynchronousDatabase<any, any>): void;
|
24
|
-
close(): void;
|
25
|
-
destroy(): void;
|
26
|
-
session(): SynchronousDatabaseSession;
|
27
|
-
makeChangeset(data: Uint8Array): SynchronousDatabaseChangeset;
|
28
20
|
txn<TRes>(callback: () => TRes): TRes;
|
29
21
|
withChangeset<TRes>(callback: () => TRes): {
|
30
22
|
result: TRes;
|
@@ -32,16 +24,15 @@ export declare class SynchronousDatabaseWrapper implements SynchronousDatabase {
|
|
32
24
|
};
|
33
25
|
rollback(changeset: Uint8Array): void;
|
34
26
|
getTablesUsed(query: string): Set<string>;
|
35
|
-
execute(queryStr: string, bindValues?: PreparedBindValues
|
27
|
+
execute(queryStr: string, bindValues?: PreparedBindValues, writeTables?: ReadonlySet<string>, options?: {
|
36
28
|
hasNoEffects?: boolean;
|
37
29
|
otelContext?: otel.Context;
|
38
|
-
writeTables?: ReadonlySet<string>;
|
39
|
-
onRowsChanged?: (rowsChanged: number) => void;
|
40
30
|
}): {
|
41
31
|
durationMs: number;
|
42
32
|
};
|
43
|
-
select<T = any>(queryStr: string,
|
33
|
+
select<T = any>(queryStr: string, options?: {
|
44
34
|
queriedTables?: ReadonlySet<string>;
|
35
|
+
bindValues?: PreparedBindValues;
|
45
36
|
skipCache?: boolean;
|
46
37
|
otelContext?: otel.Context;
|
47
38
|
}): ReadonlyArray<T>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SynchronousDatabaseWrapper.d.ts","sourceRoot":"","sources":["../src/SynchronousDatabaseWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,
|
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,IAAI,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,UAAU,GAAG,SAAS,CAAA;KAAE;IAU9F,QAAQ,CAAC,SAAS,EAAE,UAAU;IAK9B,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;IA8CzB,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;IA+DnB,MAAM;CAQP"}
|
@@ -10,7 +10,6 @@ export const emptyDebugInfo = () => ({
|
|
10
10
|
events: new BoundArray(1000),
|
11
11
|
});
|
12
12
|
export class SynchronousDatabaseWrapper {
|
13
|
-
_tag = 'SynchronousDatabase';
|
14
13
|
// TODO: how many unique active statements are expected?
|
15
14
|
cachedStmts = new BoundMap(200);
|
16
15
|
tablesUsedCache = new BoundMap(200);
|
@@ -28,25 +27,6 @@ export class SynchronousDatabaseWrapper {
|
|
28
27
|
this.cachedStmts.onEvict = (_queryStr, stmt) => stmt.finalize();
|
29
28
|
configureSQLite(this);
|
30
29
|
}
|
31
|
-
metadata;
|
32
|
-
prepare(queryStr) {
|
33
|
-
return this.db.prepare(queryStr);
|
34
|
-
}
|
35
|
-
import(data) {
|
36
|
-
return this.db.import(data);
|
37
|
-
}
|
38
|
-
close() {
|
39
|
-
return this.db.close();
|
40
|
-
}
|
41
|
-
destroy() {
|
42
|
-
return this.db.destroy();
|
43
|
-
}
|
44
|
-
session() {
|
45
|
-
return this.db.session();
|
46
|
-
}
|
47
|
-
makeChangeset(data) {
|
48
|
-
return this.db.makeChangeset(data);
|
49
|
-
}
|
50
30
|
txn(callback) {
|
51
31
|
this.execute(sql `begin transaction;`);
|
52
32
|
let errored = false;
|
@@ -101,7 +81,7 @@ export class SynchronousDatabaseWrapper {
|
|
101
81
|
this.tablesUsedCache.set(query, tablesUsed);
|
102
82
|
return tablesUsed;
|
103
83
|
}
|
104
|
-
execute(queryStr, bindValues, options) {
|
84
|
+
execute(queryStr, bindValues, writeTables, options) {
|
105
85
|
// console.debug('in-memory-db:execute', query, bindValues)
|
106
86
|
return this.otelTracer.startActiveSpan('livestore.in-memory-db:execute',
|
107
87
|
// TODO truncate query string
|
@@ -115,7 +95,7 @@ export class SynchronousDatabaseWrapper {
|
|
115
95
|
if (options?.hasNoEffects !== true && !this.resultCache.ignoreQuery(queryStr)) {
|
116
96
|
// TODO use write tables instead
|
117
97
|
// check what queries actually end up here.
|
118
|
-
this.resultCache.invalidate(
|
98
|
+
this.resultCache.invalidate(writeTables ?? this.getTablesUsed(queryStr));
|
119
99
|
}
|
120
100
|
span.end();
|
121
101
|
const durationMs = getDurationMsFromSpan(span);
|
@@ -134,8 +114,8 @@ export class SynchronousDatabaseWrapper {
|
|
134
114
|
return { durationMs };
|
135
115
|
});
|
136
116
|
}
|
137
|
-
select(queryStr,
|
138
|
-
const { queriedTables, skipCache = false, otelContext } = options ?? {};
|
117
|
+
select(queryStr, options) {
|
118
|
+
const { queriedTables, bindValues, skipCache = false, otelContext } = options ?? {};
|
139
119
|
// console.debug('in-memory-db:select', query, bindValues)
|
140
120
|
return this.otelTracer.startActiveSpan('sql-in-memory-select', {}, otelContext ?? this.otelRootSpanContext, (span) => {
|
141
121
|
try {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SynchronousDatabaseWrapper.js","sourceRoot":"","sources":["../src/SynchronousDatabaseWrapper.ts"],"names":[],"mappings":"AAAA,wDAAwD;
|
1
|
+
{"version":3,"file":"SynchronousDatabaseWrapper.js","sourceRoot":"","sources":["../src/SynchronousDatabaseWrapper.ts"],"names":[],"mappings":"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"}
|
@@ -4,16 +4,13 @@ import type { Cause, OtelTracer, Scope } from '@livestore/utils/effect';
|
|
4
4
|
import { Context, Deferred, Effect, Layer } from '@livestore/utils/effect';
|
5
5
|
import type * as otel from '@opentelemetry/api';
|
6
6
|
import type { GraphQLSchema } from 'graphql';
|
7
|
-
import type { SqliteDbWrapper } from '../SqliteDbWrapper.js';
|
8
7
|
import type { Store } from '../store/store.js';
|
9
8
|
import type { BaseGraphQLContext, LiveStoreContextRunning as LiveStoreContextRunning_ } from '../store/store-types.js';
|
10
|
-
|
11
|
-
export
|
12
|
-
|
13
|
-
|
14
|
-
declare const
|
15
|
-
export declare class DeferredStoreContext extends DeferredStoreContext_base {
|
16
|
-
}
|
9
|
+
import type { SynchronousDatabaseWrapper } from '../SynchronousDatabaseWrapper.js';
|
10
|
+
export type LiveStoreContextRunning = LiveStoreContextRunning_;
|
11
|
+
export declare const LiveStoreContextRunning: Context.Tag<LiveStoreContextRunning_, LiveStoreContextRunning_>;
|
12
|
+
export type DeferredStoreContext = Deferred.Deferred<LiveStoreContextRunning, UnexpectedError>;
|
13
|
+
export declare const DeferredStoreContext: Context.Tag<DeferredStoreContext, DeferredStoreContext>;
|
17
14
|
export type LiveStoreContextProps<GraphQLContext extends BaseGraphQLContext> = {
|
18
15
|
schema: LiveStoreSchema;
|
19
16
|
/**
|
@@ -27,9 +24,9 @@ export type LiveStoreContextProps<GraphQLContext extends BaseGraphQLContext> = {
|
|
27
24
|
storeId?: string;
|
28
25
|
graphQLOptions?: {
|
29
26
|
schema: Effect.Effect<GraphQLSchema, never, OtelTracer.OtelTracer>;
|
30
|
-
makeContext: (db:
|
27
|
+
makeContext: (db: SynchronousDatabaseWrapper, tracer: otel.Tracer, sessionId: string) => GraphQLContext;
|
31
28
|
};
|
32
|
-
boot?: (store: Store<GraphQLContext, LiveStoreSchema>) => Effect.Effect<void, unknown, OtelTracer.OtelTracer
|
29
|
+
boot?: (store: Store<GraphQLContext, LiveStoreSchema>) => Effect.Effect<void, unknown, OtelTracer.OtelTracer>;
|
33
30
|
adapter: Adapter;
|
34
31
|
disableDevtools?: boolean;
|
35
32
|
onBootStatus?: (status: BootStatus) => void;
|
@@ -37,6 +34,5 @@ export type LiveStoreContextProps<GraphQLContext extends BaseGraphQLContext> = {
|
|
37
34
|
};
|
38
35
|
export declare const LiveStoreContextLayer: <GraphQLContext extends BaseGraphQLContext>(props: LiveStoreContextProps<GraphQLContext>) => Layer.Layer<LiveStoreContextRunning, UnexpectedError | Cause.TimeoutException, OtelTracer.OtelTracer>;
|
39
36
|
export declare const LiveStoreContextDeferred: Layer.Layer<DeferredStoreContext, never, never>;
|
40
|
-
export declare const makeLiveStoreContext: <GraphQLContext extends BaseGraphQLContext>({ schema, storeId, graphQLOptions: graphQLOptions_, boot, adapter, disableDevtools, onBootStatus, batchUpdates, }: LiveStoreContextProps<GraphQLContext>) => Effect.Effect<LiveStoreContextRunning
|
41
|
-
export {};
|
37
|
+
export declare const makeLiveStoreContext: <GraphQLContext extends BaseGraphQLContext>({ schema, storeId, graphQLOptions: graphQLOptions_, boot, adapter, disableDevtools, onBootStatus, batchUpdates, }: LiveStoreContextProps<GraphQLContext>) => Effect.Effect<LiveStoreContextRunning, UnexpectedError | Cause.TimeoutException, DeferredStoreContext | Scope.Scope | OtelTracer.OtelTracer>;
|
42
38
|
//# sourceMappingURL=LiveStore.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LiveStore.d.ts","sourceRoot":"","sources":["../../src/effect/LiveStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAY,MAAM,EAAE,KAAK,EAAQ,MAAM,yBAAyB,CAAA;AAC1F,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;
|
1
|
+
{"version":3,"file":"LiveStore.d.ts","sourceRoot":"","sources":["../../src/effect/LiveStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAY,MAAM,EAAE,KAAK,EAAQ,MAAM,yBAAyB,CAAA;AAC1F,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,IAAI,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AACtH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAA;AAElF,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,CAAA;AAC9D,eAAO,MAAM,uBAAuB,iEAEnC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAAA;AAC9F,eAAO,MAAM,oBAAoB,yDAEhC,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,cAAc,SAAS,kBAAkB,IAAI;IAC7E,MAAM,EAAE,eAAe,CAAA;IACvB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;QAClE,WAAW,EAAE,CAAC,EAAE,EAAE,0BAA0B,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,cAAc,CAAA;KACxG,CAAA;IACD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,eAAe,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;IAC7G,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IAC3C,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;CACxC,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,cAAc,SAAS,kBAAkB,SACtE,qBAAqB,CAAC,cAAc,CAAC,KAC3C,KAAK,CAAC,KAAK,CAAC,uBAAuB,EAAE,eAAe,GAAG,KAAK,CAAC,gBAAgB,EAAE,UAAU,CAAC,UAAU,CAIpG,CAAA;AAEH,eAAO,MAAM,wBAAwB,iDAGpC,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,cAAc,SAAS,kBAAkB,qHAS3E,qBAAqB,CAAC,cAAc,CAAC,KAAG,MAAM,CAAC,MAAM,CACtD,uBAAuB,EACvB,eAAe,GAAG,KAAK,CAAC,gBAAgB,EACxC,oBAAoB,GAAG,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CA8BzD,CAAA"}
|
package/dist/effect/LiveStore.js
CHANGED
@@ -1,14 +1,7 @@
|
|
1
1
|
import { Context, Deferred, Duration, Effect, Layer, pipe } from '@livestore/utils/effect';
|
2
2
|
import { createStore } from '../store/create-store.js';
|
3
|
-
export
|
4
|
-
|
5
|
-
const deferred = yield* DeferredStoreContext;
|
6
|
-
const ctx = yield* deferred;
|
7
|
-
return Layer.succeed(LiveStoreContextRunning, ctx);
|
8
|
-
}).pipe(Layer.unwrapScoped);
|
9
|
-
}
|
10
|
-
export class DeferredStoreContext extends Context.Tag('@livestore/livestore/effect/DeferredStoreContext')() {
|
11
|
-
}
|
3
|
+
export const LiveStoreContextRunning = Context.GenericTag('@livestore/livestore/effect/LiveStoreContextRunning');
|
4
|
+
export const DeferredStoreContext = Context.GenericTag('@livestore/livestore/effect/DeferredStoreContext');
|
12
5
|
export const LiveStoreContextLayer = (props) => Layer.scoped(LiveStoreContextRunning, makeLiveStoreContext(props)).pipe(Layer.withSpan('LiveStore'), Layer.provide(LiveStoreContextDeferred));
|
13
6
|
export const LiveStoreContextDeferred = Layer.effect(DeferredStoreContext, Deferred.make());
|
14
7
|
export const makeLiveStoreContext = ({ schema, storeId = 'default', graphQLOptions: graphQLOptions_, boot, adapter, disableDevtools, onBootStatus, batchUpdates, }) => pipe(Effect.gen(function* () {
|
@@ -26,10 +19,7 @@ export const makeLiveStoreContext = ({ schema, storeId = 'default', graphQLOptio
|
|
26
19
|
batchUpdates,
|
27
20
|
});
|
28
21
|
globalThis.__debugLiveStore ??= {};
|
29
|
-
|
30
|
-
globalThis.__debugLiveStore['_'] = store;
|
31
|
-
}
|
32
|
-
globalThis.__debugLiveStore[storeId] = store;
|
22
|
+
// window.__debugLiveStore[schema.key] = store
|
33
23
|
return { stage: 'running', store };
|
34
24
|
}), Effect.tapErrorCause((cause) => Effect.flatMap(DeferredStoreContext, (def) => Deferred.failCause(def, cause))), Effect.tap((storeCtx) => Effect.flatMap(DeferredStoreContext, (def) => Deferred.succeed(def, storeCtx))),
|
35
25
|
// This can take quite a while.
|
@@ -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,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,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,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAI1F,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAMtD,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;AAwBD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAA4C,EAC2D,EAAE,CACzG,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,OAAO,GAAG,SAAS,EACnB,cAAc,EAAE,eAAe,EAC/B,IAAI,EACJ,OAAO,EACP,eAAe,EACf,YAAY,EACZ,YAAY,GAC0B,EAItC,EAAE,CACF,IAAI,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,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,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;QAC/B,MAAM;QACN,OAAO;QACP,cAAc;QACd,IAAI;QACJ,OAAO;QACP,eAAe;QACf,YAAY;QACZ,YAAY;KACb,CAAC,CAAA;IAEF,UAAU,CAAC,gBAAgB,KAAK,EAAE,CAAA;IAClC,8CAA8C;IAE9C,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,17 +1,18 @@
|
|
1
1
|
export { Store } from './store/store.js';
|
2
2
|
export { createStore, createStorePromise, type CreateStoreOptions } from './store/create-store.js';
|
3
3
|
export type { BaseGraphQLContext, QueryDebugInfo, RefreshReason, GraphQLOptions, OtelOptions, } from './store/store-types.js';
|
4
|
-
export
|
5
|
-
export {
|
4
|
+
export type { LiveStoreContextRunning } from './effect/LiveStore.js';
|
5
|
+
export { StoreAbort, StoreInterrupted, type LiveStoreContext, type ShutdownDeferred } from './store/store-types.js';
|
6
|
+
export { SynchronousDatabaseWrapper, emptyDebugInfo } from './SynchronousDatabaseWrapper.js';
|
6
7
|
export type { GetAtom, AtomDebugInfo, RefreshDebugInfo, ReactiveGraphSnapshot, SerializedAtom, SerializedEffect, Atom, Node, Ref, Effect, } from './reactive.js';
|
7
8
|
export { LiveStoreComputedQuery, computed } from './live-queries/computed.js';
|
8
|
-
export { LiveStoreDbQuery, queryDb } from './live-queries/db
|
9
|
+
export { LiveStoreDbQuery, queryDb } from './live-queries/db.js';
|
9
10
|
export { LiveStoreGraphQLQuery, queryGraphQL } from './live-queries/graphql.js';
|
10
|
-
export {
|
11
|
-
export {
|
11
|
+
export { type GetAtomResult, type ReactivityGraph, makeReactivityGraph, type LiveQuery, type GetResult, type LiveQueryAny, } from './live-queries/base-class.js';
|
12
|
+
export { globalReactivityGraph } from './global-state.js';
|
12
13
|
export { deriveColQuery } from './row-query-utils.js';
|
13
14
|
export * from '@livestore/common/schema';
|
14
|
-
export { sql, SessionIdSymbol, type BootStatus, type
|
15
|
+
export { sql, SessionIdSymbol, type BootStatus, type SynchronousDatabase, type DebugInfo, type MutableDebugInfo, prepareBindValues, type Bindable, type PreparedBindValues, type QueryBuilderAst, type QueryBuilder, type RowQuery, } from '@livestore/common';
|
15
16
|
export { SqliteAst, SqliteDsl } from '@livestore/db-schema';
|
16
17
|
export { deepEqual } from '@livestore/utils';
|
17
18
|
export * from './utils/stack-info.js';
|
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,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAClG,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,cAAc,EACd,WAAW,GACZ,MAAM,wBAAwB,CAAA;AAE/B,OAAO,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAClG,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,cAAc,EACd,WAAW,GACZ,MAAM,wBAAwB,CAAA;AAE/B,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEnH,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,sBAAsB,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC/E,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,mBAAmB,EACnB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,YAAY,GAClB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,cAAc,0BAA0B,CAAA;AACxC,OAAO,EACL,GAAG,EACH,eAAe,EACf,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,QAAQ,GACd,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,cAAc,uBAAuB,CAAA;AAErC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/index.js
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
export { Store } from './store/store.js';
|
2
2
|
export { createStore, createStorePromise } from './store/create-store.js';
|
3
|
-
export { StoreAbort, StoreInterrupted
|
4
|
-
export {
|
3
|
+
export { StoreAbort, StoreInterrupted } from './store/store-types.js';
|
4
|
+
export { SynchronousDatabaseWrapper, emptyDebugInfo } from './SynchronousDatabaseWrapper.js';
|
5
5
|
export { LiveStoreComputedQuery, computed } from './live-queries/computed.js';
|
6
|
-
export { LiveStoreDbQuery, queryDb } from './live-queries/db
|
6
|
+
export { LiveStoreDbQuery, queryDb } from './live-queries/db.js';
|
7
7
|
export { LiveStoreGraphQLQuery, queryGraphQL } from './live-queries/graphql.js';
|
8
|
-
export { makeRef } from './live-queries/make-ref.js';
|
9
8
|
export { makeReactivityGraph, } from './live-queries/base-class.js';
|
9
|
+
export { globalReactivityGraph } from './global-state.js';
|
10
10
|
export { deriveColQuery } from './row-query-utils.js';
|
11
11
|
export * from '@livestore/common/schema';
|
12
12
|
export { sql, SessionIdSymbol, prepareBindValues, } from '@livestore/common';
|
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,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAA2B,MAAM,yBAAyB,CAAA;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAA2B,MAAM,yBAAyB,CAAA;AAUlG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAgD,MAAM,wBAAwB,CAAA;AAEnH,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAc5F,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC/E,OAAO,EAGL,mBAAmB,GAIpB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,cAAc,0BAA0B,CAAA;AACxC,OAAO,EACL,GAAG,EACH,eAAe,EAKf,iBAAiB,GAMlB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,cAAc,uBAAuB,CAAA"}
|
@@ -1,63 +1,22 @@
|
|
1
1
|
import type { QueryInfo } from '@livestore/common';
|
2
2
|
import type * as otel from '@opentelemetry/api';
|
3
|
-
import
|
3
|
+
import { type Atom, type GetAtom, ReactiveGraph, type Thunk } from '../reactive.js';
|
4
4
|
import type { Store } from '../store/store.js';
|
5
5
|
import type { QueryDebugInfo, RefreshReason } from '../store/store-types.js';
|
6
6
|
import type { StackInfo } from '../utils/stack-info.js';
|
7
|
-
export type ReactivityGraph =
|
7
|
+
export type ReactivityGraph = ReactiveGraph<RefreshReason, QueryDebugInfo, QueryContext>;
|
8
8
|
export declare const makeReactivityGraph: () => ReactivityGraph;
|
9
|
-
export
|
10
|
-
current: number;
|
11
|
-
};
|
12
|
-
type LiveQueryDefHash = string;
|
13
|
-
export type LiveQueryRCMap = Map<LiveQueryDefHash, RcRef<LiveQueryAny | ILiveQueryRef<any>>>;
|
14
|
-
export type ReactivityGraphContext = {
|
9
|
+
export type QueryContext = {
|
15
10
|
store: Store;
|
16
|
-
liveQueryRCMap: LiveQueryRCMap;
|
17
|
-
/** Back-reference to the reactivity graph for convenience */
|
18
|
-
reactivityGraph: WeakRef<ReactivityGraph>;
|
19
11
|
otelTracer: otel.Tracer;
|
20
12
|
rootOtelContext: otel.Context;
|
21
13
|
effectsWrapper: (run: () => void) => void;
|
22
14
|
};
|
23
|
-
export type
|
15
|
+
export type UnsubscribeQuery = () => void;
|
16
|
+
export type GetResult<TQuery extends LiveQueryAny> = TQuery extends LiveQuery<infer TResult, infer _1> ? TResult : unknown;
|
24
17
|
export type LiveQueryAny = LiveQuery<any, QueryInfo>;
|
25
|
-
export type LiveQueryDefAny = LiveQueryDef<any, any>;
|
26
|
-
export interface ILiveQueryRefDef<T> {
|
27
|
-
_tag: 'live-ref-def';
|
28
|
-
defaultValue: T;
|
29
|
-
make: (ctx: ReactivityGraphContext) => RcRef<ILiveQueryRef<T>>;
|
30
|
-
}
|
31
|
-
export interface ILiveQueryRef<T> {
|
32
|
-
_tag: 'live-ref';
|
33
|
-
reactivityGraph: ReactivityGraph;
|
34
|
-
ref: RG.Ref<T, ReactivityGraphContext, RefreshReason>;
|
35
|
-
set: (value: T) => void;
|
36
|
-
get: () => T;
|
37
|
-
destroy: () => void;
|
38
|
-
}
|
39
18
|
export declare const TypeId: unique symbol;
|
40
19
|
export type TypeId = typeof TypeId;
|
41
|
-
export interface RcRef<T> {
|
42
|
-
rc: number;
|
43
|
-
value: T;
|
44
|
-
deref: () => void;
|
45
|
-
}
|
46
|
-
export type DepKey = string | number | ReadonlyArray<string | number | undefined | null>;
|
47
|
-
export declare const depsToString: (deps: DepKey) => string;
|
48
|
-
export interface LiveQueryDef<TResult, TQueryInfo extends QueryInfo = QueryInfo.None> {
|
49
|
-
_tag: 'def';
|
50
|
-
/** A unique identifier for the query definition */
|
51
|
-
id: number;
|
52
|
-
/** Creates a new LiveQuery instance bound to a specific store/reactivityGraph */
|
53
|
-
make: (ctx: ReactivityGraphContext, otelContext?: otel.Context) => RcRef<LiveQuery<TResult, TQueryInfo>>;
|
54
|
-
label: string;
|
55
|
-
hash: string;
|
56
|
-
queryInfo: TQueryInfo;
|
57
|
-
}
|
58
|
-
/**
|
59
|
-
* A LiveQuery is stateful
|
60
|
-
*/
|
61
20
|
export interface LiveQuery<TResult, TQueryInfo extends QueryInfo = QueryInfo.None> {
|
62
21
|
id: number;
|
63
22
|
_tag: 'computed' | 'db' | 'graphql';
|
@@ -65,14 +24,15 @@ export interface LiveQuery<TResult, TQueryInfo extends QueryInfo = QueryInfo.Non
|
|
65
24
|
/** This should only be used on a type-level and doesn't hold any value during runtime */
|
66
25
|
'__result!': TResult;
|
67
26
|
/** A reactive thunk representing the query results */
|
68
|
-
results$:
|
27
|
+
results$: Thunk<TResult, QueryContext, RefreshReason>;
|
69
28
|
label: string;
|
70
|
-
run: (
|
29
|
+
run: (otelContext?: otel.Context, debugRefreshReason?: RefreshReason) => TResult;
|
30
|
+
runAndDestroy: (otelContext?: otel.Context, debugRefreshReason?: RefreshReason) => TResult;
|
31
|
+
destroy(): void;
|
32
|
+
subscribe(onNewValue: (value: TResult) => void, onUnsubsubscribe?: () => void, options?: {
|
33
|
+
label?: string;
|
71
34
|
otelContext?: otel.Context;
|
72
|
-
|
73
|
-
}) => TResult;
|
74
|
-
destroy: () => void;
|
75
|
-
isDestroyed: boolean;
|
35
|
+
}): () => void;
|
76
36
|
activeSubscriptions: Set<StackInfo>;
|
77
37
|
queryInfo: TQueryInfo;
|
78
38
|
runs: number;
|
@@ -85,23 +45,20 @@ export declare abstract class LiveStoreQueryBase<TResult, TQueryInfo extends Que
|
|
85
45
|
abstract _tag: 'computed' | 'db' | 'graphql';
|
86
46
|
/** Human-readable label for the query for debugging */
|
87
47
|
abstract label: string;
|
88
|
-
abstract results$:
|
48
|
+
abstract results$: Thunk<TResult, QueryContext, RefreshReason>;
|
89
49
|
activeSubscriptions: Set<StackInfo>;
|
90
|
-
abstract
|
50
|
+
protected abstract reactivityGraph: ReactivityGraph;
|
91
51
|
abstract queryInfo: TQueryInfo;
|
92
52
|
get runs(): number;
|
93
53
|
executionTimes: number[];
|
94
|
-
isDestroyed: boolean;
|
95
54
|
abstract destroy: () => void;
|
96
|
-
run: (
|
55
|
+
run: (otelContext?: otel.Context, debugRefreshReason?: RefreshReason) => TResult;
|
56
|
+
runAndDestroy: (otelContext?: otel.Context, debugRefreshReason?: RefreshReason) => TResult;
|
57
|
+
subscribe: (onNewValue: (value: TResult) => void, onUnsubsubscribe?: () => void, options?: {
|
58
|
+
label?: string;
|
97
59
|
otelContext?: otel.Context;
|
98
|
-
|
99
|
-
}) => TResult;
|
100
|
-
protected dependencyQueriesRef: DependencyQueriesRef;
|
60
|
+
} | undefined) => (() => void);
|
101
61
|
}
|
102
|
-
export type GetAtomResult = <T>(atom:
|
103
|
-
export
|
104
|
-
export declare const makeGetAtomResult: (get: RG.GetAtom, ctx: ReactivityGraphContext, otelContext: otel.Context, dependencyQueriesRef: DependencyQueriesRef) => GetAtomResult;
|
105
|
-
export declare const withRCMap: <T extends LiveQueryAny | ILiveQueryRef<any>>(id: string, make: (ctx: ReactivityGraphContext, otelContext?: otel.Context) => T) => ((ctx: ReactivityGraphContext, otelContext?: otel.Context) => RcRef<T>);
|
106
|
-
export {};
|
62
|
+
export type GetAtomResult = <T>(atom: Atom<T, any, RefreshReason> | LiveQuery<T, any>) => T;
|
63
|
+
export declare const makeGetAtomResult: (get: GetAtom, otelContext: otel.Context) => GetAtomResult;
|
107
64
|
//# sourceMappingURL=base-class.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"base-class.d.ts","sourceRoot":"","sources":["../../src/live-queries/base-class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;
|
1
|
+
{"version":3,"file":"base-class.d.ts","sourceRoot":"","sources":["../../src/live-queries/base-class.ts"],"names":[],"mappings":"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"}
|
@@ -1,16 +1,7 @@
|
|
1
|
-
import {
|
2
|
-
|
3
|
-
import * as RG from '../reactive.js';
|
4
|
-
export const makeReactivityGraph = () => new RG.ReactiveGraph();
|
5
|
-
export const defCounterRef = GlobalValue.globalValue('livestore-def-counter', () => ({ current: 0 }));
|
1
|
+
import { ReactiveGraph, throwContextNotSetError } from '../reactive.js';
|
2
|
+
export const makeReactivityGraph = () => new ReactiveGraph();
|
6
3
|
let queryIdCounter = 0;
|
7
4
|
export const TypeId = Symbol.for('LiveQuery');
|
8
|
-
export const depsToString = (deps) => {
|
9
|
-
if (typeof deps === 'string' || typeof deps === 'number') {
|
10
|
-
return deps.toString();
|
11
|
-
}
|
12
|
-
return deps.filter(isNotNil).join(',');
|
13
|
-
};
|
14
5
|
export class LiveStoreQueryBase {
|
15
6
|
'__result!';
|
16
7
|
id = queryIdCounter++;
|
@@ -20,55 +11,21 @@ export class LiveStoreQueryBase {
|
|
20
11
|
return this.results$.recomputations;
|
21
12
|
}
|
22
13
|
executionTimes = [];
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
14
|
+
run = (otelContext, debugRefreshReason) => this.results$.computeResult(otelContext, debugRefreshReason);
|
15
|
+
runAndDestroy = (otelContext, debugRefreshReason) => {
|
16
|
+
const result = this.run(otelContext, debugRefreshReason);
|
17
|
+
this.destroy();
|
18
|
+
return result;
|
27
19
|
};
|
28
|
-
|
20
|
+
subscribe = (onNewValue, onUnsubsubscribe, options) => this.reactivityGraph.context?.store.subscribe(this, onNewValue, onUnsubsubscribe, options) ??
|
21
|
+
throwContextNotSetError(this.reactivityGraph);
|
29
22
|
}
|
30
|
-
export const makeGetAtomResult = (get,
|
31
|
-
|
32
|
-
const getAtom = (atom, _otelContext, debugRefreshReason) => {
|
33
|
-
// ReactivityGraph atoms case
|
23
|
+
export const makeGetAtomResult = (get, otelContext) => {
|
24
|
+
const getAtom = (atom) => {
|
34
25
|
if (atom._tag === 'thunk' || atom._tag === 'ref')
|
35
|
-
return get(atom, otelContext
|
36
|
-
|
37
|
-
if (atom._tag === 'def' || atom._tag === 'live-ref-def') {
|
38
|
-
const query = atom.make(ctx);
|
39
|
-
dependencyQueriesRef.add(query);
|
40
|
-
// TODO deref the query on destroy
|
41
|
-
return getAtom(query.value, _otelContext, debugRefreshReason);
|
42
|
-
}
|
43
|
-
// LiveQueryRef case
|
44
|
-
if (atom._tag === 'live-ref')
|
45
|
-
return get(atom.ref, otelContext, debugRefreshReason);
|
46
|
-
// LiveQuery case
|
47
|
-
return get(atom.results$, otelContext, debugRefreshReason);
|
26
|
+
return get(atom, otelContext);
|
27
|
+
return get(atom.results$, otelContext);
|
48
28
|
};
|
49
29
|
return getAtom;
|
50
30
|
};
|
51
|
-
export const withRCMap = (id, make) => {
|
52
|
-
return (ctx, otelContext) => {
|
53
|
-
let item = ctx.liveQueryRCMap.get(id);
|
54
|
-
if (item) {
|
55
|
-
item.rc++;
|
56
|
-
return item;
|
57
|
-
}
|
58
|
-
const query$ = make(ctx, otelContext);
|
59
|
-
item = {
|
60
|
-
rc: 1,
|
61
|
-
value: query$,
|
62
|
-
deref: () => {
|
63
|
-
item.rc--;
|
64
|
-
if (item.rc === 0) {
|
65
|
-
item.value.destroy();
|
66
|
-
}
|
67
|
-
ctx.liveQueryRCMap.delete(id);
|
68
|
-
},
|
69
|
-
};
|
70
|
-
ctx.liveQueryRCMap.set(id, item);
|
71
|
-
return item;
|
72
|
-
};
|
73
|
-
};
|
74
31
|
//# sourceMappingURL=base-class.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"base-class.js","sourceRoot":"","sources":["../../src/live-queries/base-class.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"base-class.js","sourceRoot":"","sources":["../../src/live-queries/base-class.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,aAAa,EAAE,uBAAuB,EAAc,MAAM,gBAAgB,CAAA;AAO5G,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAoB,EAAE,CACvD,IAAI,aAAa,EAA+C,CAAA;AAclE,IAAI,cAAc,GAAG,CAAC,CAAA;AAItB,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AAqC7C,MAAM,OAAgB,kBAAkB;IAGtC,WAAW,CAAU;IACrB,EAAE,GAAG,cAAc,EAAE,CAAC;IACtB,CAAC,MAAM,CAAC,GAAW,MAAM,CAAA;IAQzB,mBAAmB,GAAmB,IAAI,GAAG,EAAE,CAAA;IAM/C,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAA;IACrC,CAAC;IAED,cAAc,GAAa,EAAE,CAAA;IAI7B,GAAG,GAAG,CAAC,WAA0B,EAAE,kBAAkC,EAAW,EAAE,CAChF,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;IAE9D,aAAa,GAAG,CAAC,WAA0B,EAAE,kBAAkC,EAAW,EAAE;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;QACxD,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,SAAS,GAAG,CACV,UAAoC,EACpC,gBAA6B,EAC7B,OAAoE,EACtD,EAAE,CAChB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,CAAC;QAC1F,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;CAChD;AAID,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAE,WAAyB,EAAE,EAAE;IAC3E,MAAM,OAAO,GAAkB,CAAC,IAAI,EAAE,EAAE;QACtC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QAC/E,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IACxC,CAAC,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
@@ -1,24 +1,24 @@
|
|
1
1
|
import type { QueryInfo } from '@livestore/common';
|
2
2
|
import type { Thunk } from '../reactive.js';
|
3
3
|
import type { RefreshReason } from '../store/store-types.js';
|
4
|
-
import type {
|
4
|
+
import type { GetAtomResult, LiveQuery, QueryContext, ReactivityGraph } from './base-class.js';
|
5
5
|
import { LiveStoreQueryBase } from './base-class.js';
|
6
6
|
export declare const computed: <TResult, TQueryInfo extends QueryInfo = QueryInfo.None>(fn: (get: GetAtomResult) => TResult, options?: {
|
7
|
-
label
|
7
|
+
label: string;
|
8
|
+
reactivityGraph?: ReactivityGraph;
|
8
9
|
queryInfo?: TQueryInfo;
|
9
|
-
|
10
|
-
}) => LiveQueryDef<TResult, TQueryInfo>;
|
10
|
+
}) => LiveQuery<TResult, TQueryInfo>;
|
11
11
|
export declare class LiveStoreComputedQuery<TResult, TQueryInfo extends QueryInfo = QueryInfo.None> extends LiveStoreQueryBase<TResult, TQueryInfo> {
|
12
12
|
_tag: 'computed';
|
13
13
|
/** A reactive thunk representing the query results */
|
14
|
-
results$: Thunk<TResult,
|
14
|
+
results$: Thunk<TResult, QueryContext, RefreshReason>;
|
15
15
|
label: string;
|
16
|
-
reactivityGraph: ReactivityGraph;
|
16
|
+
protected reactivityGraph: ReactivityGraph;
|
17
17
|
queryInfo: TQueryInfo;
|
18
18
|
constructor({ fn, label, reactivityGraph, queryInfo, }: {
|
19
19
|
label: string;
|
20
20
|
fn: (get: GetAtomResult) => TResult;
|
21
|
-
reactivityGraph
|
21
|
+
reactivityGraph?: ReactivityGraph;
|
22
22
|
queryInfo?: TQueryInfo;
|
23
23
|
});
|
24
24
|
destroy: () => void;
|