@livestore/livestore 0.2.0 → 0.3.0-dev.11
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 +54 -0
- package/dist/SqliteDbWrapper.d.ts.map +1 -0
- package/dist/SqliteDbWrapper.js +212 -0
- package/dist/SqliteDbWrapper.js.map +1 -0
- package/dist/SynchronousDatabaseWrapper.d.ts +20 -6
- package/dist/SynchronousDatabaseWrapper.d.ts.map +1 -1
- package/dist/SynchronousDatabaseWrapper.js +38 -6
- package/dist/SynchronousDatabaseWrapper.js.map +1 -1
- package/dist/__tests__/fixture.d.ts +252 -0
- package/dist/__tests__/fixture.d.ts.map +1 -0
- package/dist/__tests__/fixture.js +18 -0
- package/dist/__tests__/fixture.js.map +1 -0
- package/dist/effect/LiveStore.d.ts +16 -12
- package/dist/effect/LiveStore.d.ts.map +1 -1
- package/dist/effect/LiveStore.js +14 -14
- package/dist/effect/LiveStore.js.map +1 -1
- package/dist/index.d.ts +6 -7
- 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 +64 -21
- package/dist/live-queries/base-class.d.ts.map +1 -1
- package/dist/live-queries/base-class.js +56 -13
- 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 +35 -11
- package/dist/live-queries/computed.js.map +1 -1
- package/dist/live-queries/{sql.d.ts → db-query.d.ts} +19 -14
- package/dist/live-queries/db-query.d.ts.map +1 -0
- package/dist/live-queries/db-query.js +244 -0
- package/dist/live-queries/db-query.js.map +1 -0
- package/dist/live-queries/db-query.test.d.ts +2 -0
- package/dist/live-queries/db-query.test.d.ts.map +1 -0
- package/dist/live-queries/db-query.test.js +123 -0
- package/dist/live-queries/db-query.test.js.map +1 -0
- package/dist/live-queries/db.d.ts +12 -15
- package/dist/live-queries/db.d.ts.map +1 -1
- package/dist/live-queries/db.js +72 -48
- package/dist/live-queries/db.js.map +1 -1
- package/dist/live-queries/db.test.js +18 -15
- 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 +35 -9
- package/dist/live-queries/graphql.js.map +1 -1
- package/dist/live-queries/make-ref.d.ts +20 -0
- package/dist/live-queries/make-ref.d.ts.map +1 -0
- package/dist/live-queries/make-ref.js +33 -0
- package/dist/live-queries/make-ref.js.map +1 -0
- package/dist/reactive.d.ts +15 -13
- package/dist/reactive.d.ts.map +1 -1
- package/dist/reactive.js +15 -9
- 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 +14 -10
- package/dist/row-query-utils.js.map +1 -1
- package/dist/store/create-store.d.ts +13 -12
- package/dist/store/create-store.d.ts.map +1 -1
- package/dist/store/create-store.js +27 -33
- package/dist/store/create-store.js.map +1 -1
- package/dist/store/devtools.d.ts +3 -3
- package/dist/store/devtools.d.ts.map +1 -1
- package/dist/store/devtools.js +56 -34
- package/dist/store/devtools.js.map +1 -1
- package/dist/store/store-types.d.ts +18 -18
- 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 +57 -38
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +225 -188
- package/dist/store/store.js.map +1 -1
- package/dist/store/store.test.d.ts +2 -0
- package/dist/store/store.test.d.ts.map +1 -0
- package/dist/store/store.test.js +27 -0
- package/dist/store/store.test.js.map +1 -0
- package/dist/utils/dev.d.ts.map +1 -1
- package/dist/utils/dev.js +3 -2
- package/dist/utils/dev.js.map +1 -1
- package/dist/utils/expo.d.ts +2 -0
- package/dist/utils/expo.d.ts.map +1 -0
- package/dist/utils/expo.js +8 -0
- package/dist/utils/expo.js.map +1 -0
- package/dist/utils/function-string.d.ts +7 -0
- package/dist/utils/function-string.d.ts.map +1 -0
- package/dist/utils/function-string.js +9 -0
- package/dist/utils/function-string.js.map +1 -0
- package/dist/utils/stack-info.d.ts.map +1 -1
- package/dist/utils/stack-info.js +6 -1
- package/dist/utils/stack-info.js.map +1 -1
- package/dist/utils/stack-info.test.js +54 -1
- package/dist/utils/stack-info.test.js.map +1 -1
- package/dist/utils/tests/fixture.d.ts +2 -6
- package/dist/utils/tests/fixture.d.ts.map +1 -1
- package/dist/utils/tests/fixture.js +7 -13
- package/dist/utils/tests/fixture.js.map +1 -1
- package/dist/utils/tests/mod.d.ts +1 -0
- package/dist/utils/tests/mod.d.ts.map +1 -1
- package/dist/utils/tests/mod.js +1 -0
- package/dist/utils/tests/mod.js.map +1 -1
- package/dist/utils/tests/otel.d.ts +60 -1
- package/dist/utils/tests/otel.d.ts.map +1 -1
- package/dist/utils/tests/otel.js +65 -4
- package/dist/utils/tests/otel.js.map +1 -1
- package/package.json +12 -12
- package/src/{SynchronousDatabaseWrapper.ts → SqliteDbWrapper.ts} +59 -13
- package/src/ambient.d.ts +1 -1
- package/src/effect/LiveStore.ts +32 -33
- package/src/index.ts +14 -7
- package/src/live-queries/__snapshots__/{db.test.ts.snap → db-query.test.ts.snap} +220 -69
- package/src/live-queries/base-class.ts +160 -40
- package/src/live-queries/computed.ts +45 -19
- package/src/live-queries/{db.test.ts → db-query.test.ts} +23 -12
- package/src/live-queries/{db.ts → db-query.ts} +124 -61
- package/src/live-queries/graphql.ts +47 -21
- package/src/live-queries/make-ref.ts +47 -0
- package/src/reactive.ts +52 -27
- package/src/row-query-utils.ts +29 -18
- package/src/store/create-store.ts +106 -113
- package/src/store/devtools.ts +65 -39
- package/src/store/store-types.ts +20 -18
- package/src/store/store.ts +361 -290
- package/src/utils/dev.ts +4 -2
- package/src/utils/function-string.ts +12 -0
- package/src/utils/stack-info.test.ts +58 -1
- package/src/utils/stack-info.ts +6 -1
- package/src/utils/tests/fixture.ts +6 -16
- package/src/utils/tests/mod.ts +1 -0
- package/src/utils/tests/otel.ts +71 -5
- package/dist/live-queries/sql.d.ts.map +0 -1
- package/dist/live-queries/sql.js +0 -175
- package/dist/live-queries/sql.js.map +0 -1
- package/dist/live-queries/sql.test.d.ts +0 -2
- package/dist/live-queries/sql.test.d.ts.map +0 -1
- package/dist/live-queries/sql.test.js +0 -285
- package/dist/live-queries/sql.test.js.map +0 -1
- package/dist/reactiveQueries/base-class.d.ts +0 -64
- package/dist/reactiveQueries/base-class.d.ts.map +0 -1
- package/dist/reactiveQueries/base-class.js +0 -31
- package/dist/reactiveQueries/base-class.js.map +0 -1
- package/dist/reactiveQueries/computed.d.ts +0 -26
- package/dist/reactiveQueries/computed.d.ts.map +0 -1
- package/dist/reactiveQueries/computed.js +0 -38
- package/dist/reactiveQueries/computed.js.map +0 -1
- package/dist/reactiveQueries/graphql.d.ts +0 -49
- package/dist/reactiveQueries/graphql.d.ts.map +0 -1
- package/dist/reactiveQueries/graphql.js +0 -122
- package/dist/reactiveQueries/graphql.js.map +0 -1
- package/dist/reactiveQueries/sql.d.ts +0 -62
- package/dist/reactiveQueries/sql.d.ts.map +0 -1
- package/dist/reactiveQueries/sql.js +0 -175
- package/dist/reactiveQueries/sql.js.map +0 -1
- package/dist/reactiveQueries/sql.test.d.ts +0 -2
- package/dist/reactiveQueries/sql.test.d.ts.map +0 -1
- package/dist/reactiveQueries/sql.test.js +0 -285
- package/dist/reactiveQueries/sql.test.js.map +0 -1
- package/dist/row-query.d.ts +0 -16
- package/dist/row-query.d.ts.map +0 -1
- package/dist/row-query.js +0 -30
- package/dist/row-query.js.map +0 -1
- package/src/global-state.ts +0 -20
package/dist/store/store.d.ts
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import type { ClientSession, ParamsObject, QueryBuilder } from '@livestore/common';
|
|
2
|
-
import type { LiveStoreSchema
|
|
3
|
-
import {
|
|
1
|
+
import type { ClientSession, ParamsObject, QueryBuilder, UnexpectedError } from '@livestore/common';
|
|
2
|
+
import type { LiveStoreSchema } from '@livestore/common/schema';
|
|
3
|
+
import { MutationEvent } from '@livestore/common/schema';
|
|
4
|
+
import type { Scope } from '@livestore/utils/effect';
|
|
5
|
+
import { Effect, Inspectable, Stream } from '@livestore/utils/effect';
|
|
4
6
|
import * as otel from '@opentelemetry/api';
|
|
5
|
-
import type
|
|
6
|
-
import type { LiveQuery,
|
|
7
|
+
import { type GraphQLSchema } from 'graphql';
|
|
8
|
+
import type { ILiveQueryRefDef, LiveQuery, LiveQueryDef, ReactivityGraph, ReactivityGraphContext } from '../live-queries/base-class.js';
|
|
7
9
|
import type { Ref } from '../reactive.js';
|
|
8
|
-
import {
|
|
10
|
+
import { SqliteDbWrapper } from '../SqliteDbWrapper.js';
|
|
9
11
|
import { ReferenceCountedSet } from '../utils/data-structures.js';
|
|
10
|
-
import type {
|
|
12
|
+
import type { StackInfo } from '../utils/stack-info.js';
|
|
13
|
+
import type { BaseGraphQLContext, RefreshReason, StoreMutateOptions, StoreOptions, StoreOtel, Unsubscribe } from './store-types.js';
|
|
11
14
|
export declare class Store<TGraphQLContext extends BaseGraphQLContext = BaseGraphQLContext, TSchema extends LiveStoreSchema = LiveStoreSchema> extends Inspectable.Class {
|
|
12
15
|
readonly storeId: string;
|
|
13
16
|
reactivityGraph: ReactivityGraph;
|
|
14
|
-
|
|
17
|
+
sqliteDbWrapper: SqliteDbWrapper;
|
|
15
18
|
clientSession: ClientSession;
|
|
16
19
|
schema: LiveStoreSchema;
|
|
17
20
|
graphQLSchema?: GraphQLSchema;
|
|
@@ -22,32 +25,69 @@ export declare class Store<TGraphQLContext extends BaseGraphQLContext = BaseGrap
|
|
|
22
25
|
* This only works in combination with `equal: () => false` which will always trigger a refresh.
|
|
23
26
|
*/
|
|
24
27
|
tableRefs: {
|
|
25
|
-
[key: string]: Ref<null,
|
|
28
|
+
[key: string]: Ref<null, ReactivityGraphContext, RefreshReason>;
|
|
26
29
|
};
|
|
27
|
-
private fiberSet;
|
|
28
30
|
private runtime;
|
|
29
31
|
/** RC-based set to see which queries are currently subscribed to */
|
|
30
32
|
activeQueries: ReferenceCountedSet<LiveQuery<any>>;
|
|
31
|
-
readonly __mutationEventSchema:
|
|
33
|
+
readonly __mutationEventSchema: MutationEvent.ForMutationDefRecord<TSchema["_MutationDefMapType"]>;
|
|
32
34
|
private unsyncedMutationEvents;
|
|
33
|
-
private
|
|
34
|
-
|
|
35
|
+
private syncProcessor;
|
|
36
|
+
readonly lifetimeScope: Scope.Scope;
|
|
37
|
+
readonly boot: Effect.Effect<void, UnexpectedError, Scope.Scope>;
|
|
38
|
+
constructor({ clientSession, schema, graphQLOptions, otelOptions, disableDevtools, batchUpdates, unsyncedMutationEvents, storeId, lifetimeScope, runtime, }: StoreOptions<TGraphQLContext, TSchema>);
|
|
35
39
|
get sessionId(): string;
|
|
36
40
|
/**
|
|
37
41
|
* Subscribe to the results of a query
|
|
38
42
|
* Returns a function to cancel the subscription.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* const unsubscribe = store.subscribe(query$, { onUpdate: (result) => console.log(result) })
|
|
47
|
+
* ```
|
|
39
48
|
*/
|
|
40
|
-
subscribe: <TResult>(query
|
|
49
|
+
subscribe: <TResult>(query: LiveQueryDef<TResult, any> | LiveQuery<TResult, any>, options: {
|
|
50
|
+
/** Called when the query result has changed */
|
|
51
|
+
onUpdate: (value: TResult) => void;
|
|
52
|
+
onSubscribe?: (query$: LiveQuery<TResult, any>) => void;
|
|
53
|
+
/** Gets called after the query subscription has been removed */
|
|
54
|
+
onUnsubsubscribe?: () => void;
|
|
41
55
|
label?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Skips the initial `onUpdate` callback
|
|
58
|
+
* @default false
|
|
59
|
+
*/
|
|
60
|
+
skipInitialRun?: boolean;
|
|
42
61
|
otelContext?: otel.Context;
|
|
62
|
+
/** If provided, the stack info will be added to the `activeSubscriptions` set of the query */
|
|
63
|
+
stackInfo?: StackInfo;
|
|
64
|
+
}) => Unsubscribe;
|
|
65
|
+
subscribeStream: <TResult>(query$: LiveQueryDef<TResult, any>, options?: {
|
|
66
|
+
label?: string;
|
|
43
67
|
skipInitialRun?: boolean;
|
|
44
|
-
} | undefined) =>
|
|
45
|
-
|
|
68
|
+
} | undefined) => Stream.Stream<TResult>;
|
|
69
|
+
/**
|
|
70
|
+
* Synchronously queries the database without creating a LiveQuery.
|
|
71
|
+
* This is useful for queries that don't need to be reactive.
|
|
72
|
+
*
|
|
73
|
+
* Example: Query builder
|
|
74
|
+
* ```ts
|
|
75
|
+
* const completedTodos = store.query(tables.todo.where({ complete: true }))
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* Example: Raw SQL query
|
|
79
|
+
* ```ts
|
|
80
|
+
* const completedTodos = store.query({ query: 'SELECT * FROM todo WHERE complete = 1', bindValues: {} })
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
query: <TResult>(query: QueryBuilder<TResult, any, any> | LiveQuery<TResult, any> | LiveQueryDef<TResult, any> | {
|
|
46
84
|
query: string;
|
|
47
85
|
bindValues: ParamsObject;
|
|
48
86
|
}, options?: {
|
|
49
87
|
otelContext?: otel.Context;
|
|
88
|
+
debugRefreshReason?: RefreshReason;
|
|
50
89
|
}) => TResult;
|
|
90
|
+
setRef: <T>(refDef: ILiveQueryRefDef<T>, value: T) => void;
|
|
51
91
|
mutate: {
|
|
52
92
|
<const TMutationArg extends ReadonlyArray<MutationEvent.PartialForSchema<TSchema>>>(...list: TMutationArg): void;
|
|
53
93
|
(txn: <const TMutationArg extends ReadonlyArray<MutationEvent.PartialForSchema<TSchema>>>(...list: TMutationArg) => void): void;
|
|
@@ -61,33 +101,12 @@ export declare class Store<TGraphQLContext extends BaseGraphQLContext = BaseGrap
|
|
|
61
101
|
manualRefresh: (options?: {
|
|
62
102
|
label?: string;
|
|
63
103
|
}) => void;
|
|
64
|
-
/**
|
|
65
|
-
* Apply a mutation to the store.
|
|
66
|
-
* Returns the tables that were affected by the event.
|
|
67
|
-
* This is an internal method that doesn't trigger a refresh;
|
|
68
|
-
* the caller must refresh queries after calling this method.
|
|
69
|
-
*/
|
|
70
|
-
mutateWithoutRefresh: (mutationEventDecoded_: MutationEvent.ForSchema<TSchema> | MutationEvent.PartialForSchema<TSchema>, options: {
|
|
71
|
-
otelContext: otel.Context;
|
|
72
|
-
coordinatorMode: "default" | "skip-coordinator" | "skip-persist";
|
|
73
|
-
}) => {
|
|
74
|
-
writeTables: ReadonlySet<string>;
|
|
75
|
-
durationMs: number;
|
|
76
|
-
};
|
|
77
|
-
/**
|
|
78
|
-
* Directly execute a SQL query on the Store.
|
|
79
|
-
* This should only be used for framework-internal purposes;
|
|
80
|
-
* all app writes should go through mutate.
|
|
81
|
-
*/
|
|
82
|
-
__execute: (query: string, params?: ParamsObject, writeTables?: ReadonlySet<string>, otelContext?: otel.Context) => void;
|
|
83
104
|
private makeTableRef;
|
|
84
|
-
__devDownloadDb: () => void;
|
|
85
|
-
__devDownloadMutationLogDb: () => import("effect/Fiber").RuntimeFiber<import("effect/Fiber").RuntimeFiber<void, import("@livestore/common").UnexpectedError>, never>;
|
|
86
|
-
__devCurrentMutationEventId: () => import("@livestore/common").EventId;
|
|
87
105
|
toJSON: () => {
|
|
88
106
|
_tag: string;
|
|
89
107
|
reactivityGraph: import("../reactive.js").ReactiveGraphSnapshot;
|
|
90
108
|
};
|
|
91
109
|
private runEffectFork;
|
|
110
|
+
private getMutateArgs;
|
|
92
111
|
}
|
|
93
112
|
//# 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,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"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"}
|