@livestore/livestore 0.0.56-dev.2 → 0.0.56-dev.3
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.map +1 -1
- package/dist/SynchronousDatabaseWrapper.js +9 -18
- package/dist/SynchronousDatabaseWrapper.js.map +1 -1
- package/dist/__tests__/react/fixture.d.ts +3 -4
- package/dist/__tests__/react/fixture.d.ts.map +1 -1
- package/dist/__tests__/react/fixture.js +7 -5
- package/dist/__tests__/react/fixture.js.map +1 -1
- package/dist/effect/LiveStore.d.ts +4 -24
- package/dist/effect/LiveStore.d.ts.map +1 -1
- package/dist/effect/LiveStore.js +2 -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.map +1 -1
- package/dist/react/LiveStoreContext.d.ts +1 -2
- package/dist/react/LiveStoreContext.d.ts.map +1 -1
- package/dist/react/LiveStoreProvider.d.ts +5 -13
- package/dist/react/LiveStoreProvider.d.ts.map +1 -1
- package/dist/react/LiveStoreProvider.js +25 -12
- package/dist/react/LiveStoreProvider.js.map +1 -1
- package/dist/react/LiveStoreProvider.test.js +1 -1
- package/dist/react/LiveStoreProvider.test.js.map +1 -1
- package/dist/react/useQuery.test.js +7 -7
- package/dist/react/useQuery.test.js.map +1 -1
- package/dist/react/useRow.test.js +52 -46
- package/dist/react/useRow.test.js.map +1 -1
- package/dist/react/useTemporaryQuery.test.js +4 -4
- package/dist/react/useTemporaryQuery.test.js.map +1 -1
- package/dist/reactiveQueries/sql.test.js +34 -33
- package/dist/reactiveQueries/sql.test.js.map +1 -1
- package/dist/store-context.d.ts +26 -0
- package/dist/store-context.d.ts.map +1 -0
- package/dist/store-context.js +6 -0
- package/dist/store-context.js.map +1 -0
- package/dist/store-devtools.d.ts +1 -1
- package/dist/store-devtools.d.ts.map +1 -1
- package/dist/store-devtools.js +5 -0
- package/dist/store-devtools.js.map +1 -1
- package/dist/store.d.ts +8 -23
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +30 -35
- package/dist/store.js.map +1 -1
- package/package.json +5 -5
- package/src/SynchronousDatabaseWrapper.ts +10 -18
- package/src/__tests__/react/fixture.tsx +53 -50
- package/src/effect/LiveStore.ts +5 -34
- package/src/index.ts +2 -10
- package/src/react/LiveStoreProvider.test.tsx +1 -1
- package/src/react/LiveStoreProvider.tsx +37 -19
- package/src/react/useQuery.test.tsx +53 -51
- package/src/react/useRow.test.tsx +237 -224
- package/src/react/useTemporaryQuery.test.tsx +46 -45
- package/src/reactiveQueries/sql.test.ts +36 -33
- package/src/store-context.ts +23 -0
- package/src/store-devtools.ts +8 -0
- package/src/store.ts +55 -59
- package/vitest.config.js +1 -1
|
@@ -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,EAElB,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;
|
|
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;AAE1B,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;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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/* eslint-disable prefer-arrow/prefer-arrow-functions */
|
|
2
2
|
import { BoundArray, BoundMap, sql } from '@livestore/common';
|
|
3
|
-
import { shouldNeverHappen } from '@livestore/utils';
|
|
4
3
|
import QueryCache from './QueryCache.js';
|
|
5
4
|
import { getDurationMsFromSpan, getStartTimeHighResFromSpan } from './utils/otel.js';
|
|
6
5
|
export const emptyDebugInfo = () => ({
|
|
@@ -28,7 +27,7 @@ export class SynchronousDatabaseWrapper {
|
|
|
28
27
|
configureSQLite(this);
|
|
29
28
|
}
|
|
30
29
|
txn(callback) {
|
|
31
|
-
this.execute(sql
|
|
30
|
+
// this.execute(sql`begin transaction;`)
|
|
32
31
|
let errored = false;
|
|
33
32
|
let result;
|
|
34
33
|
try {
|
|
@@ -36,11 +35,11 @@ export class SynchronousDatabaseWrapper {
|
|
|
36
35
|
}
|
|
37
36
|
catch (e) {
|
|
38
37
|
errored = true;
|
|
39
|
-
this.execute(sql
|
|
38
|
+
// this.execute(sql`rollback;`)
|
|
40
39
|
throw e;
|
|
41
40
|
}
|
|
42
41
|
if (!errored) {
|
|
43
|
-
this.execute(sql
|
|
42
|
+
// this.execute(sql`commit;`)
|
|
44
43
|
}
|
|
45
44
|
return result;
|
|
46
45
|
}
|
|
@@ -75,17 +74,12 @@ export class SynchronousDatabaseWrapper {
|
|
|
75
74
|
return this.otelTracer.startActiveSpan('livestore.in-memory-db:execute',
|
|
76
75
|
// TODO truncate query string
|
|
77
76
|
{ attributes: { 'sql.query': queryStr } }, options?.otelContext ?? this.otelRootSpanContext, (span) => {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
this.cachedStmts.set(queryStr, stmt);
|
|
83
|
-
}
|
|
84
|
-
stmt.execute(bindValues);
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
shouldNeverHappen(`Error executing query: ${error} \n ${JSON.stringify({ query: queryStr, bindValues })}`);
|
|
77
|
+
let stmt = this.cachedStmts.get(queryStr);
|
|
78
|
+
if (stmt === undefined) {
|
|
79
|
+
stmt = this.db.prepare(queryStr);
|
|
80
|
+
this.cachedStmts.set(queryStr, stmt);
|
|
88
81
|
}
|
|
82
|
+
stmt.execute(bindValues);
|
|
89
83
|
if (options?.hasNoEffects !== true && !this.resultCache.ignoreQuery(queryStr)) {
|
|
90
84
|
// TODO use write tables instead
|
|
91
85
|
// check what queries actually end up here.
|
|
@@ -149,11 +143,8 @@ export class SynchronousDatabaseWrapper {
|
|
|
149
143
|
}
|
|
150
144
|
return result;
|
|
151
145
|
}
|
|
152
|
-
|
|
146
|
+
finally {
|
|
153
147
|
span.end();
|
|
154
|
-
console.error(queryStr);
|
|
155
|
-
console.error(bindValues);
|
|
156
|
-
shouldNeverHappen(`Error executing select query: ${e} \n ${JSON.stringify({ query: queryStr, bindValues })}`);
|
|
157
148
|
}
|
|
158
149
|
});
|
|
159
150
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SynchronousDatabaseWrapper.js","sourceRoot":"","sources":["../src/SynchronousDatabaseWrapper.ts"],"names":[],"mappings":"AAAA,wDAAwD;AASxD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"SynchronousDatabaseWrapper.js","sourceRoot":"","sources":["../src/SynchronousDatabaseWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Schema as __Schema } from '@livestore/utils/effect';
|
|
1
|
+
import { Effect, Schema as __Schema } from '@livestore/utils/effect';
|
|
2
2
|
import type * as otel from '@opentelemetry/api';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { DbSchema } from '../../index.js';
|
|
@@ -310,8 +310,7 @@ export declare const makeTodoMvc: ({ otelTracer, otelContext, useGlobalReactivit
|
|
|
310
310
|
otelContext?: otel.Context;
|
|
311
311
|
useGlobalReactivityGraph?: boolean;
|
|
312
312
|
strictMode?: boolean;
|
|
313
|
-
}) =>
|
|
314
|
-
[Symbol.dispose]: () => Promise<void>;
|
|
313
|
+
}) => Effect.Effect<{
|
|
315
314
|
wrapper: ({ children }: any) => React.JSX.Element;
|
|
316
315
|
AppComponentSchema: DbSchema.TableDef<DbSchema.SqliteDsl.TableDefinition<"UserInfo", {
|
|
317
316
|
username: {
|
|
@@ -460,5 +459,5 @@ export declare const makeTodoMvc: ({ otelTracer, otelContext, useGlobalReactivit
|
|
|
460
459
|
inc: () => void;
|
|
461
460
|
};
|
|
462
461
|
strictMode: boolean;
|
|
463
|
-
}>;
|
|
462
|
+
}, import("@livestore/common/dist/adapter-types.js").UnexpectedError, import("effect/Scope").Scope>;
|
|
464
463
|
//# sourceMappingURL=fixture.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../../src/__tests__/react/fixture.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../../src/__tests__/react/fixture.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAE9E,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAe,QAAQ,EAAwC,MAAM,gBAAgB,CAAA;AAG5F,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAA;AAEnD,MAAM,MAAM,QAAQ,GAAG;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAQjB,CAAA;AAED,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAId,CAAA;AAmBF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4C,CAAA;AAC/D,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAyB,CAAA;AAE5C,eAAO,MAAM,WAAW,wEAKrB;IACD,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAA;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;4BAsCkC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mGAiBlC,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { Effect, FiberSet } from '@livestore/utils/effect';
|
|
1
2
|
import { makeInMemoryAdapter } from '@livestore/web';
|
|
2
3
|
import React from 'react';
|
|
3
4
|
import { globalReactivityGraph } from '../../global-state.js';
|
|
4
|
-
import {
|
|
5
|
+
import { createStore, DbSchema, makeReactivityGraph, makeSchema, sql } from '../../index.js';
|
|
5
6
|
import * as LiveStoreReact from '../../react/index.js';
|
|
6
7
|
export const todos = DbSchema.table('todos', {
|
|
7
8
|
id: DbSchema.text({ primaryKey: true }),
|
|
@@ -22,7 +23,7 @@ const AppRouterSchema = DbSchema.table('AppRouter', {
|
|
|
22
23
|
}, { isSingleton: true, deriveMutations: true });
|
|
23
24
|
export const tables = { todos, app, userInfo, AppRouterSchema };
|
|
24
25
|
export const schema = makeSchema({ tables });
|
|
25
|
-
export const makeTodoMvc =
|
|
26
|
+
export const makeTodoMvc = ({ otelTracer, otelContext, useGlobalReactivityGraph = true, strictMode = process.env.REACT_STRICT_MODE !== undefined, } = {}) => Effect.gen(function* () {
|
|
26
27
|
const reactivityGraph = useGlobalReactivityGraph ? globalReactivityGraph : makeReactivityGraph();
|
|
27
28
|
const makeRenderCount = () => {
|
|
28
29
|
let val = 0;
|
|
@@ -36,7 +37,8 @@ export const makeTodoMvc = async ({ otelTracer, otelContext, useGlobalReactivity
|
|
|
36
37
|
inc,
|
|
37
38
|
};
|
|
38
39
|
};
|
|
39
|
-
const
|
|
40
|
+
const fiberSet = yield* FiberSet.make();
|
|
41
|
+
const store = yield* createStore({
|
|
40
42
|
schema,
|
|
41
43
|
boot: (db) => db.execute(sql `INSERT OR IGNORE INTO app (id, newTodoText, filter) VALUES ('static', '', 'all');`),
|
|
42
44
|
adapter: makeInMemoryAdapter(),
|
|
@@ -45,6 +47,7 @@ export const makeTodoMvc = async ({ otelTracer, otelContext, useGlobalReactivity
|
|
|
45
47
|
tracer: otelTracer,
|
|
46
48
|
rootSpanContext: otelContext,
|
|
47
49
|
},
|
|
50
|
+
fiberSet,
|
|
48
51
|
});
|
|
49
52
|
// TODO improve typing of `LiveStoreContext`
|
|
50
53
|
const storeContext = { stage: 'running', store };
|
|
@@ -52,7 +55,6 @@ export const makeTodoMvc = async ({ otelTracer, otelContext, useGlobalReactivity
|
|
|
52
55
|
const wrapper = ({ children }) => (React.createElement(MaybeStrictMode, null,
|
|
53
56
|
React.createElement(LiveStoreReact.LiveStoreContext.Provider, { value: storeContext }, children)));
|
|
54
57
|
return {
|
|
55
|
-
[Symbol.dispose]: () => store.destroy(),
|
|
56
58
|
wrapper,
|
|
57
59
|
AppComponentSchema: userInfo,
|
|
58
60
|
AppRouterSchema,
|
|
@@ -61,5 +63,5 @@ export const makeTodoMvc = async ({ otelTracer, otelContext, useGlobalReactivity
|
|
|
61
63
|
makeRenderCount,
|
|
62
64
|
strictMode,
|
|
63
65
|
};
|
|
64
|
-
};
|
|
66
|
+
});
|
|
65
67
|
//# sourceMappingURL=fixture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../../src/__tests__/react/fixture.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../../src/__tests__/react/fixture.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,31 +4,11 @@ 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 {
|
|
8
|
-
import type {
|
|
7
|
+
import type { BaseGraphQLContext } from '../store.js';
|
|
8
|
+
import type { LiveStoreContextRunning as LiveStoreContextRunning_ } from '../store-context.js';
|
|
9
9
|
import type { SynchronousDatabaseWrapper } from '../SynchronousDatabaseWrapper.js';
|
|
10
|
-
export type
|
|
11
|
-
|
|
12
|
-
error: UnexpectedError | unknown;
|
|
13
|
-
} | {
|
|
14
|
-
stage: 'shutdown';
|
|
15
|
-
};
|
|
16
|
-
export type LiveStoreContextRunning = {
|
|
17
|
-
stage: 'running';
|
|
18
|
-
store: Store;
|
|
19
|
-
};
|
|
20
|
-
export type QueryDefinition = <TResult>(store: Store) => LiveQuery<TResult>;
|
|
21
|
-
export type LiveStoreCreateStoreOptions<GraphQLContext extends BaseGraphQLContext> = {
|
|
22
|
-
schema: LiveStoreSchema;
|
|
23
|
-
graphQLOptions?: GraphQLOptions<GraphQLContext>;
|
|
24
|
-
otelOptions?: OtelOptions;
|
|
25
|
-
boot?: (db: BootDb, parentSpan: otel.Span) => void | Promise<void> | Effect.Effect<void, unknown, otel.Tracer>;
|
|
26
|
-
adapter: StoreAdapterFactory;
|
|
27
|
-
batchUpdates?: (run: () => void) => void;
|
|
28
|
-
disableDevtools?: boolean;
|
|
29
|
-
signal?: AbortSignal;
|
|
30
|
-
};
|
|
31
|
-
export declare const LiveStoreContextRunning: Context.Tag<LiveStoreContextRunning, LiveStoreContextRunning>;
|
|
10
|
+
export type LiveStoreContextRunning = LiveStoreContextRunning_;
|
|
11
|
+
export declare const LiveStoreContextRunning: Context.Tag<LiveStoreContextRunning_, LiveStoreContextRunning_>;
|
|
32
12
|
export type DeferredStoreContext = Deferred.Deferred<LiveStoreContextRunning, UnexpectedError>;
|
|
33
13
|
export declare const DeferredStoreContext: Context.Tag<DeferredStoreContext, DeferredStoreContext>;
|
|
34
14
|
export type LiveStoreContextProps<GraphQLContext extends BaseGraphQLContext> = {
|
|
@@ -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":"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,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErD,OAAO,KAAK,EAAE,uBAAuB,IAAI,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAC9F,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,cAAc,CAAC,EAAE;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACxD,WAAW,EAAE,CAAC,EAAE,EAAE,0BAA0B,KAAK,cAAc,CAAA;KAChE,CAAA;IACD,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAChE,OAAO,EAAE,mBAAmB,CAAA;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;CAC5C,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,IAAI,CAAC,MAAM,CAI1F,CAAA;AAEH,eAAO,MAAM,wBAAwB,iDAGpC,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,cAAc,SAAS,kBAAkB,8FAO3E,qBAAqB,CAAC,cAAc,CAAC,KAAG,MAAM,CAAC,MAAM,CACtD,uBAAuB,EACvB,eAAe,GAAG,KAAK,CAAC,gBAAgB,EACxC,oBAAoB,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAwC/C,CAAA"}
|
package/dist/effect/LiveStore.js
CHANGED
|
@@ -26,7 +26,8 @@ export const makeLiveStoreContext = ({ schema, graphQLOptions: graphQLOptions_,
|
|
|
26
26
|
fiberSet,
|
|
27
27
|
onBootStatus,
|
|
28
28
|
});
|
|
29
|
-
window.__debugLiveStore
|
|
29
|
+
window.__debugLiveStore ??= {};
|
|
30
|
+
window.__debugLiveStore[schema.key] = store;
|
|
30
31
|
return { stage: 'running', store };
|
|
31
32
|
}), Effect.tapErrorCause((cause) => Effect.flatMap(DeferredStoreContext, (def) => Deferred.failCause(def, cause))), Effect.tap((storeCtx) => Effect.flatMap(DeferredStoreContext, (def) => Deferred.succeed(def, storeCtx))),
|
|
32
33
|
// 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,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":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { Store, createStorePromise, createStore } from './store.js';
|
|
2
2
|
export type { BaseGraphQLContext, QueryDebugInfo, RefreshReason } from './store.js';
|
|
3
|
-
export type {
|
|
3
|
+
export type { LiveStoreContextRunning as LiveStoreContext } from './effect/LiveStore.js';
|
|
4
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';
|
|
@@ -13,5 +13,5 @@ export * from '@livestore/common/schema';
|
|
|
13
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
|
-
export type { StoreAdapter
|
|
16
|
+
export type { StoreAdapter, StoreAdapterFactory, PreparedStatement } from '@livestore/common';
|
|
17
17
|
//# sourceMappingURL=index.d.ts.map
|
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,
|
|
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,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExF,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,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA"}
|
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;
|
|
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;AAKnE,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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { LiveStoreContextRunning as LiveStoreContext_ } from '../effect/LiveStore.js';
|
|
3
2
|
import type { Store } from '../store.js';
|
|
4
|
-
export declare const LiveStoreContext: React.Context<
|
|
3
|
+
export declare const LiveStoreContext: React.Context<import("../store-context.js").LiveStoreContextRunning | undefined>;
|
|
5
4
|
export declare const useStore: () => {
|
|
6
5
|
store: Store;
|
|
7
6
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveStoreContext.d.ts","sourceRoot":"","sources":["../../src/react/LiveStoreContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"LiveStoreContext.d.ts","sourceRoot":"","sources":["../../src/react/LiveStoreContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAGzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExC,eAAO,MAAM,gBAAgB,kFAAgE,CAAA;AAE7F,eAAO,MAAM,QAAQ,QAAO;IAAE,KAAK,EAAE,KAAK,CAAA;CAYzC,CAAA"}
|
|
@@ -1,19 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { BootDb, BootStatus, IntentionalShutdownCause, StoreAdapterFactory } from '@livestore/common';
|
|
2
|
+
import { UnexpectedError } from '@livestore/common';
|
|
2
3
|
import type { LiveStoreSchema } from '@livestore/common/schema';
|
|
3
|
-
import { Effect
|
|
4
|
+
import { Effect } from '@livestore/utils/effect';
|
|
4
5
|
import type * as otel from '@opentelemetry/api';
|
|
5
6
|
import type { ReactElement, ReactNode } from 'react';
|
|
6
7
|
import type { BaseGraphQLContext, GraphQLOptions, OtelOptions } from '../store.js';
|
|
7
|
-
|
|
8
|
-
readonly _tag: Schema.tag<"LiveStore.StoreAbort">;
|
|
9
|
-
}>;
|
|
10
|
-
export declare class StoreAbort extends StoreAbort_base {
|
|
11
|
-
}
|
|
12
|
-
declare const StoreInterrupted_base: Schema.TaggedErrorClass<StoreInterrupted, "LiveStore.StoreInterrupted", {
|
|
13
|
-
readonly _tag: Schema.tag<"LiveStore.StoreInterrupted">;
|
|
14
|
-
}>;
|
|
15
|
-
export declare class StoreInterrupted extends StoreInterrupted_base {
|
|
16
|
-
}
|
|
8
|
+
import { StoreAbort } from '../store-context.js';
|
|
17
9
|
interface LiveStoreProviderProps<GraphQLContext> {
|
|
18
10
|
schema: LiveStoreSchema;
|
|
19
11
|
boot?: (db: BootDb, parentSpan: otel.Span) => void | Promise<void> | Effect.Effect<void, unknown, otel.Tracer>;
|
|
@@ -21,7 +13,7 @@ interface LiveStoreProviderProps<GraphQLContext> {
|
|
|
21
13
|
otelOptions?: OtelOptions;
|
|
22
14
|
renderLoading: (status: BootStatus) => ReactElement;
|
|
23
15
|
renderError?: (error: UnexpectedError | unknown) => ReactElement;
|
|
24
|
-
renderShutdown?: () => ReactElement;
|
|
16
|
+
renderShutdown?: (cause: IntentionalShutdownCause | StoreAbort) => ReactElement;
|
|
25
17
|
adapter: StoreAdapterFactory;
|
|
26
18
|
batchUpdates?: (run: () => void) => void;
|
|
27
19
|
disableDevtools?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveStoreProvider.d.ts","sourceRoot":"","sources":["../../src/react/LiveStoreProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"LiveStoreProvider.d.ts","sourceRoot":"","sources":["../../src/react/LiveStoreProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC1G,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,OAAO,EAAE,MAAM,EAAsC,MAAM,yBAAyB,CAAA;AACpF,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGpD,OAAO,KAAK,EAAE,kBAAkB,EAAsB,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGtG,OAAO,EAAE,UAAU,EAAoB,MAAM,qBAAqB,CAAA;AAGlE,UAAU,sBAAsB,CAAC,cAAc;IAC7C,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9G,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IAC/C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,YAAY,CAAA;IACnD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,KAAK,YAAY,CAAA;IAChE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,GAAG,UAAU,KAAK,YAAY,CAAA;IAC/E,OAAO,EAAE,mBAAmB,CAAA;IAC5B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IACxC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAkBD,eAAO,MAAM,iBAAiB,GAAI,cAAc,SAAS,kBAAkB,wJAaxE,sBAAsB,CAAC,cAAc,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,KAAG,GAAG,CAAC,OA4B1E,CAAA"}
|
|
@@ -3,13 +3,21 @@ import { errorToString } from '@livestore/utils';
|
|
|
3
3
|
import { Effect, FiberSet, Logger, LogLevel, Schema } from '@livestore/utils/effect';
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { createStore } from '../store.js';
|
|
6
|
+
import { StoreAbort, StoreInterrupted } from '../store-context.js';
|
|
6
7
|
import { LiveStoreContext } from './LiveStoreContext.js';
|
|
7
|
-
export class StoreAbort extends Schema.TaggedError()('LiveStore.StoreAbort', {}) {
|
|
8
|
-
}
|
|
9
|
-
export class StoreInterrupted extends Schema.TaggedError()('LiveStore.StoreInterrupted', {}) {
|
|
10
|
-
}
|
|
11
8
|
const defaultRenderError = (error) => (React.createElement(React.Fragment, null, Schema.is(UnexpectedError)(error) ? error.toString() : errorToString(error)));
|
|
12
|
-
const defaultRenderShutdown = () =>
|
|
9
|
+
const defaultRenderShutdown = (cause) => {
|
|
10
|
+
const reason = cause._tag === 'LiveStore.StoreAbort'
|
|
11
|
+
? 'abort signal'
|
|
12
|
+
: cause.reason === 'devtools-import'
|
|
13
|
+
? 'devtools import'
|
|
14
|
+
: cause.reason === 'devtools-reset'
|
|
15
|
+
? 'devtools reset'
|
|
16
|
+
: 'unknown reason';
|
|
17
|
+
return React.createElement(React.Fragment, null,
|
|
18
|
+
"LiveStore Shutdown due to ",
|
|
19
|
+
reason);
|
|
20
|
+
};
|
|
13
21
|
export const LiveStoreProvider = ({ renderLoading, renderError = defaultRenderError, renderShutdown = defaultRenderShutdown, graphQLOptions, otelOptions, children, schema, boot, adapter, batchUpdates, disableDevtools, signal, }) => {
|
|
14
22
|
const storeCtx = useCreateStore({
|
|
15
23
|
schema,
|
|
@@ -25,12 +33,13 @@ export const LiveStoreProvider = ({ renderLoading, renderError = defaultRenderEr
|
|
|
25
33
|
return renderError(storeCtx.error);
|
|
26
34
|
}
|
|
27
35
|
if (storeCtx.stage === 'shutdown') {
|
|
28
|
-
return renderShutdown();
|
|
36
|
+
return renderShutdown(storeCtx.cause);
|
|
29
37
|
}
|
|
30
38
|
if (storeCtx.stage !== 'running') {
|
|
31
39
|
return renderLoading(storeCtx);
|
|
32
40
|
}
|
|
33
|
-
window.__debugLiveStore
|
|
41
|
+
window.__debugLiveStore ??= {};
|
|
42
|
+
window.__debugLiveStore[schema.key] = storeCtx.store;
|
|
34
43
|
return React.createElement(LiveStoreContext.Provider, { value: storeCtx }, children);
|
|
35
44
|
};
|
|
36
45
|
const semaphoreMap = new Map();
|
|
@@ -42,7 +51,7 @@ const withSemaphore = (schemaKey) => {
|
|
|
42
51
|
}
|
|
43
52
|
return semaphore.withPermits(1);
|
|
44
53
|
};
|
|
45
|
-
const useCreateStore = ({ schema, graphQLOptions, otelOptions, boot, adapter, batchUpdates, disableDevtools, signal, }) => {
|
|
54
|
+
const useCreateStore = ({ schema, graphQLOptions, otelOptions, boot, adapter, batchUpdates, disableDevtools, reactivityGraph, signal, }) => {
|
|
46
55
|
const [_, rerender] = React.useState(0);
|
|
47
56
|
const ctxValueRef = React.useRef({
|
|
48
57
|
value: { stage: 'loading' },
|
|
@@ -58,12 +67,13 @@ const useCreateStore = ({ schema, graphQLOptions, otelOptions, boot, adapter, ba
|
|
|
58
67
|
adapter,
|
|
59
68
|
batchUpdates,
|
|
60
69
|
disableDevtools,
|
|
70
|
+
reactivityGraph,
|
|
61
71
|
signal,
|
|
62
72
|
});
|
|
63
73
|
const interrupt = (fiberSet, error) => Effect.gen(function* () {
|
|
64
74
|
yield* FiberSet.clear(fiberSet);
|
|
65
75
|
yield* FiberSet.run(fiberSet, Effect.fail(error));
|
|
66
|
-
}).pipe(Effect.
|
|
76
|
+
}).pipe(Effect.tapErrorCause((cause) => Effect.logDebug(`[@livestore/livestore/react] interupting`, cause)), Effect.runFork);
|
|
67
77
|
if (inputPropsCacheRef.current.schema !== schema ||
|
|
68
78
|
inputPropsCacheRef.current.graphQLOptions !== graphQLOptions ||
|
|
69
79
|
inputPropsCacheRef.current.otelOptions !== otelOptions ||
|
|
@@ -71,6 +81,7 @@ const useCreateStore = ({ schema, graphQLOptions, otelOptions, boot, adapter, ba
|
|
|
71
81
|
inputPropsCacheRef.current.adapter !== adapter ||
|
|
72
82
|
inputPropsCacheRef.current.batchUpdates !== batchUpdates ||
|
|
73
83
|
inputPropsCacheRef.current.disableDevtools !== disableDevtools ||
|
|
84
|
+
inputPropsCacheRef.current.reactivityGraph !== reactivityGraph ||
|
|
74
85
|
inputPropsCacheRef.current.signal !== signal) {
|
|
75
86
|
inputPropsCacheRef.current = {
|
|
76
87
|
schema,
|
|
@@ -80,6 +91,7 @@ const useCreateStore = ({ schema, graphQLOptions, otelOptions, boot, adapter, ba
|
|
|
80
91
|
adapter,
|
|
81
92
|
batchUpdates,
|
|
82
93
|
disableDevtools,
|
|
94
|
+
reactivityGraph,
|
|
83
95
|
signal,
|
|
84
96
|
};
|
|
85
97
|
if (ctxValueRef.current.fiberSet !== undefined) {
|
|
@@ -113,6 +125,7 @@ const useCreateStore = ({ schema, graphQLOptions, otelOptions, boot, adapter, ba
|
|
|
113
125
|
otelOptions,
|
|
114
126
|
boot,
|
|
115
127
|
adapter,
|
|
128
|
+
reactivityGraph,
|
|
116
129
|
batchUpdates,
|
|
117
130
|
disableDevtools,
|
|
118
131
|
onBootStatus: (status) => {
|
|
@@ -124,8 +137,8 @@ const useCreateStore = ({ schema, graphQLOptions, otelOptions, boot, adapter, ba
|
|
|
124
137
|
setContextValue({ stage: 'running', store });
|
|
125
138
|
yield* Effect.never;
|
|
126
139
|
}).pipe(Effect.scoped, FiberSet.run(fiberSet));
|
|
127
|
-
const shutdownContext = Effect.sync(() => setContextValue({ stage: 'shutdown' }));
|
|
128
|
-
yield* FiberSet.join(fiberSet).pipe(Effect.catchTag('LiveStore.
|
|
140
|
+
const shutdownContext = (cause) => Effect.sync(() => setContextValue({ stage: 'shutdown', cause }));
|
|
141
|
+
yield* FiberSet.join(fiberSet).pipe(Effect.catchTag('LiveStore.IntentionalShutdownCause', (cause) => shutdownContext(cause)), Effect.catchTag('LiveStore.StoreAbort', (cause) => shutdownContext(cause)), Effect.tapError((error) => Effect.sync(() => setContextValue({ stage: 'error', error }))), Effect.tapDefect((defect) => Effect.sync(() => setContextValue({ stage: 'error', error: defect }))), Effect.exit);
|
|
129
142
|
}).pipe(Effect.scoped,
|
|
130
143
|
// NOTE we're running the code above in a semaphore to make sure a previous store is always fully
|
|
131
144
|
// shutdown before a new one is created - especially when shutdown logic is async. You can't trust `React.useEffect`.
|
|
@@ -137,7 +150,7 @@ const useCreateStore = ({ schema, graphQLOptions, otelOptions, boot, adapter, ba
|
|
|
137
150
|
ctxValueRef.current.fiberSet = undefined;
|
|
138
151
|
}
|
|
139
152
|
};
|
|
140
|
-
}, [schema, graphQLOptions, otelOptions, boot, adapter, batchUpdates, disableDevtools, signal]);
|
|
153
|
+
}, [schema, graphQLOptions, otelOptions, boot, adapter, batchUpdates, disableDevtools, signal, reactivityGraph]);
|
|
141
154
|
return ctxValueRef.current.value;
|
|
142
155
|
};
|
|
143
156
|
//# sourceMappingURL=LiveStoreProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveStoreProvider.js","sourceRoot":"","sources":["../../src/react/LiveStoreProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LiveStoreProvider.js","sourceRoot":"","sources":["../../src/react/LiveStoreProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@ describe('LiveStoreProvider', () => {
|
|
|
36
36
|
await waitFor(() => screen.getByText((_) => _.includes('buy milk')));
|
|
37
37
|
expect(appRenderCount).toBe(2);
|
|
38
38
|
abortController.abort();
|
|
39
|
-
await waitFor(() => screen.getByText('LiveStore Shutdown'));
|
|
39
|
+
await waitFor(() => screen.getByText('LiveStore Shutdown due to abort signal'));
|
|
40
40
|
});
|
|
41
41
|
it('error during boot', async () => {
|
|
42
42
|
let appRenderCount = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveStoreProvider.test.js","sourceRoot":"","sources":["../../src/react/LiveStoreProvider.test.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"LiveStoreProvider.test.js","sourceRoot":"","sources":["../../src/react/LiveStoreProvider.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Schema } from '@livestore/utils/effect';
|
|
1
|
+
import { Effect, Schema } from '@livestore/utils/effect';
|
|
2
2
|
import { renderHook } from '@testing-library/react';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { describe, expect, it } from 'vitest';
|
|
@@ -6,8 +6,8 @@ import { makeTodoMvc, tables, todos } from '../__tests__/react/fixture.js';
|
|
|
6
6
|
import { querySQL } from '../reactiveQueries/sql.js';
|
|
7
7
|
import * as LiveStoreReact from './index.js';
|
|
8
8
|
describe('useQuery', () => {
|
|
9
|
-
it('simple',
|
|
10
|
-
const { wrapper, store, makeRenderCount } =
|
|
9
|
+
it('simple', () => Effect.gen(function* () {
|
|
10
|
+
const { wrapper, store, makeRenderCount } = yield* makeTodoMvc();
|
|
11
11
|
const renderCount = makeRenderCount();
|
|
12
12
|
const allTodos$ = querySQL(`select * from todos`, { schema: Schema.Array(tables.todos.schema) });
|
|
13
13
|
const { result } = renderHook(() => {
|
|
@@ -20,9 +20,9 @@ describe('useQuery', () => {
|
|
|
20
20
|
expect(result.current.length).toBe(1);
|
|
21
21
|
expect(result.current[0].text).toBe('buy milk');
|
|
22
22
|
expect(renderCount.val).toBe(2);
|
|
23
|
-
});
|
|
24
|
-
it('same `useQuery` hook invoked with different queries',
|
|
25
|
-
const { wrapper, store, makeRenderCount } =
|
|
23
|
+
}).pipe(Effect.scoped, Effect.tapCauseLogPretty, Effect.runPromise));
|
|
24
|
+
it('same `useQuery` hook invoked with different queries', () => Effect.gen(function* () {
|
|
25
|
+
const { wrapper, store, makeRenderCount } = yield* makeTodoMvc();
|
|
26
26
|
const renderCount = makeRenderCount();
|
|
27
27
|
const todo1$ = querySQL(`select * from todos where id = 't1'`, {
|
|
28
28
|
label: 'libraryTracksView1',
|
|
@@ -46,6 +46,6 @@ describe('useQuery', () => {
|
|
|
46
46
|
rerender('t2');
|
|
47
47
|
expect(result.current).toBe('buy eggs');
|
|
48
48
|
expect(renderCount.val).toBe(3);
|
|
49
|
-
});
|
|
49
|
+
}).pipe(Effect.scoped, Effect.tapCauseLogPretty, Effect.runPromise));
|
|
50
50
|
});
|
|
51
51
|
//# sourceMappingURL=useQuery.test.js.map
|