@livestore/livestore 0.0.54-dev.4 → 0.0.54

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.
Files changed (118) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/MainDatabaseWrapper.d.ts +6 -5
  3. package/dist/MainDatabaseWrapper.d.ts.map +1 -1
  4. package/dist/MainDatabaseWrapper.js +3 -3
  5. package/dist/MainDatabaseWrapper.js.map +1 -1
  6. package/dist/QueryCache.d.ts +1 -1
  7. package/dist/QueryCache.d.ts.map +1 -1
  8. package/dist/QueryCache.js.map +1 -1
  9. package/dist/__tests__/react/fixture.d.ts +9 -27
  10. package/dist/__tests__/react/fixture.d.ts.map +1 -1
  11. package/dist/__tests__/react/fixture.js +12 -10
  12. package/dist/__tests__/react/fixture.js.map +1 -1
  13. package/dist/effect/LiveStore.d.ts +18 -11
  14. package/dist/effect/LiveStore.d.ts.map +1 -1
  15. package/dist/effect/LiveStore.js +20 -19
  16. package/dist/effect/LiveStore.js.map +1 -1
  17. package/dist/effect/index.d.ts +1 -1
  18. package/dist/effect/index.d.ts.map +1 -1
  19. package/dist/effect/index.js +1 -1
  20. package/dist/effect/index.js.map +1 -1
  21. package/dist/global-state.d.ts +1 -3
  22. package/dist/global-state.d.ts.map +1 -1
  23. package/dist/global-state.js +2 -3
  24. package/dist/global-state.js.map +1 -1
  25. package/dist/index.d.ts +6 -7
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +5 -6
  28. package/dist/index.js.map +1 -1
  29. package/dist/react/LiveStoreContext.d.ts +5 -2
  30. package/dist/react/LiveStoreContext.d.ts.map +1 -1
  31. package/dist/react/LiveStoreContext.js +3 -0
  32. package/dist/react/LiveStoreContext.js.map +1 -1
  33. package/dist/react/LiveStoreProvider.d.ts +6 -6
  34. package/dist/react/LiveStoreProvider.d.ts.map +1 -1
  35. package/dist/react/LiveStoreProvider.js +70 -43
  36. package/dist/react/LiveStoreProvider.js.map +1 -1
  37. package/dist/react/LiveStoreProvider.test.js +33 -12
  38. package/dist/react/LiveStoreProvider.test.js.map +1 -1
  39. package/dist/react/components/LiveList.d.ts.map +1 -1
  40. package/dist/react/useAtom.d.ts +1 -1
  41. package/dist/react/useAtom.d.ts.map +1 -1
  42. package/dist/react/useLocalId.d.ts.map +1 -1
  43. package/dist/react/useQuery.d.ts.map +1 -1
  44. package/dist/react/useQuery.js +2 -2
  45. package/dist/react/useQuery.js.map +1 -1
  46. package/dist/react/useRow.d.ts +2 -2
  47. package/dist/react/useRow.d.ts.map +1 -1
  48. package/dist/react/useRow.js +5 -5
  49. package/dist/react/useRow.js.map +1 -1
  50. package/dist/react/useRow.test.js +22 -22
  51. package/dist/react/useRow.test.js.map +1 -1
  52. package/dist/react/useTemporaryQuery.d.ts.map +1 -1
  53. package/dist/react/useTemporaryQuery.js +1 -1
  54. package/dist/react/useTemporaryQuery.js.map +1 -1
  55. package/dist/react/utils/useStateRefWithReactiveInput.d.ts.map +1 -1
  56. package/dist/reactive.d.ts +1 -1
  57. package/dist/reactive.d.ts.map +1 -1
  58. package/dist/reactive.js +4 -5
  59. package/dist/reactive.js.map +1 -1
  60. package/dist/reactiveQueries/base-class.d.ts +6 -6
  61. package/dist/reactiveQueries/base-class.d.ts.map +1 -1
  62. package/dist/reactiveQueries/base-class.js +3 -3
  63. package/dist/reactiveQueries/base-class.js.map +1 -1
  64. package/dist/reactiveQueries/graphql.d.ts +8 -8
  65. package/dist/reactiveQueries/graphql.d.ts.map +1 -1
  66. package/dist/reactiveQueries/graphql.js +10 -10
  67. package/dist/reactiveQueries/graphql.js.map +1 -1
  68. package/dist/reactiveQueries/js.d.ts +6 -6
  69. package/dist/reactiveQueries/js.d.ts.map +1 -1
  70. package/dist/reactiveQueries/js.js +8 -8
  71. package/dist/reactiveQueries/js.js.map +1 -1
  72. package/dist/reactiveQueries/sql.d.ts +9 -10
  73. package/dist/reactiveQueries/sql.d.ts.map +1 -1
  74. package/dist/reactiveQueries/sql.js +12 -12
  75. package/dist/reactiveQueries/sql.js.map +1 -1
  76. package/dist/reactiveQueries/sql.test.js +6 -6
  77. package/dist/reactiveQueries/sql.test.js.map +1 -1
  78. package/dist/row-query.d.ts +2 -2
  79. package/dist/row-query.d.ts.map +1 -1
  80. package/dist/row-query.js +4 -38
  81. package/dist/row-query.js.map +1 -1
  82. package/dist/store.d.ts +35 -22
  83. package/dist/store.d.ts.map +1 -1
  84. package/dist/store.js +329 -221
  85. package/dist/store.js.map +1 -1
  86. package/dist/utils/otel.d.ts.map +1 -1
  87. package/package.json +10 -19
  88. package/src/MainDatabaseWrapper.ts +14 -8
  89. package/src/QueryCache.ts +1 -2
  90. package/src/__tests__/react/fixture.tsx +13 -11
  91. package/src/effect/LiveStore.ts +53 -44
  92. package/src/effect/index.ts +2 -1
  93. package/src/global-state.ts +2 -6
  94. package/src/index.ts +25 -7
  95. package/src/react/LiveStoreContext.ts +7 -2
  96. package/src/react/LiveStoreProvider.test.tsx +56 -14
  97. package/src/react/LiveStoreProvider.tsx +107 -51
  98. package/src/react/useQuery.ts +2 -2
  99. package/src/react/useRow.test.tsx +22 -22
  100. package/src/react/useRow.ts +7 -10
  101. package/src/react/useTemporaryQuery.ts +2 -2
  102. package/src/reactive.ts +6 -5
  103. package/src/reactiveQueries/base-class.ts +9 -9
  104. package/src/reactiveQueries/graphql.ts +19 -15
  105. package/src/reactiveQueries/js.ts +12 -12
  106. package/src/reactiveQueries/sql.test.ts +6 -6
  107. package/src/reactiveQueries/sql.ts +19 -21
  108. package/src/row-query.ts +8 -54
  109. package/src/store.ts +514 -284
  110. package/dist/utils/bounded-collections.d.ts +0 -34
  111. package/dist/utils/bounded-collections.d.ts.map +0 -1
  112. package/dist/utils/bounded-collections.js +0 -91
  113. package/dist/utils/bounded-collections.js.map +0 -1
  114. package/dist/utils/util.d.ts +0 -14
  115. package/dist/utils/util.d.ts.map +0 -1
  116. package/dist/utils/util.js +0 -19
  117. package/dist/utils/util.js.map +0 -1
  118. package/src/utils/util.ts +0 -31
@@ -5,6 +5,9 @@ export const useStore = () => {
5
5
  if (storeContext === undefined) {
6
6
  throw new Error(`useStore can only be used inside StoreContext.Provider`);
7
7
  }
8
+ if (storeContext.stage !== 'running') {
9
+ throw new Error(`useStore can only be used after the store is running`);
10
+ }
8
11
  return storeContext;
9
12
  };
10
13
  //# sourceMappingURL=LiveStoreContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiveStoreContext.js","sourceRoot":"","sources":["../../src/react/LiveStoreContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAIzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAgC,SAAS,CAAC,CAAA;AAE7F,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAsB,EAAE;IAC9C,MAAM,YAAY,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAA;IAEjD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC3E,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"LiveStoreContext.js","sourceRoot":"","sources":["../../src/react/LiveStoreContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAKzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAgC,SAAS,CAAC,CAAA;AAE7F,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAqB,EAAE;IAC7C,MAAM,YAAY,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAA;IAEjD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC3E,CAAC;IAED,IAAI,YAAY,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
@@ -1,20 +1,20 @@
1
- import type { BootDb, StoreAdapterFactory } from '@livestore/common';
1
+ import { type BootDb, type BootStatus, type StoreAdapterFactory } from '@livestore/common';
2
2
  import type { LiveStoreSchema } from '@livestore/common/schema';
3
3
  import type * as otel from '@opentelemetry/api';
4
4
  import type { ReactElement, ReactNode } from 'react';
5
- import type { BaseGraphQLContext, GraphQLOptions } from '../store.js';
5
+ import type { BaseGraphQLContext, GraphQLOptions, OtelOptions } from '../store.js';
6
6
  interface LiveStoreProviderProps<GraphQLContext> {
7
7
  schema: LiveStoreSchema;
8
8
  boot?: (db: BootDb, parentSpan: otel.Span) => unknown | Promise<unknown>;
9
9
  graphQLOptions?: GraphQLOptions<GraphQLContext>;
10
- otelTracer?: otel.Tracer;
11
- otelRootSpanContext?: otel.Context;
12
- fallback: ReactElement;
10
+ otelOptions?: OtelOptions;
11
+ renderLoading: (status: BootStatus) => ReactElement;
13
12
  adapter: StoreAdapterFactory;
14
13
  batchUpdates?: (run: () => void) => void;
15
14
  disableDevtools?: boolean;
15
+ signal?: AbortSignal;
16
16
  }
17
- export declare const LiveStoreProvider: <GraphQLContext extends BaseGraphQLContext>({ fallback, graphQLOptions, otelTracer, otelRootSpanContext, children, schema, boot, adapter, batchUpdates, disableDevtools, }: LiveStoreProviderProps<GraphQLContext> & {
17
+ export declare const LiveStoreProvider: <GraphQLContext extends BaseGraphQLContext>({ renderLoading, graphQLOptions, otelOptions, children, schema, boot, adapter, batchUpdates, disableDevtools, signal, }: LiveStoreProviderProps<GraphQLContext> & {
18
18
  children?: ReactNode;
19
19
  }) => JSX.Element;
20
20
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"LiveStoreProvider.d.ts","sourceRoot":"","sources":["../../src/react/LiveStoreProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAS,MAAM,aAAa,CAAA;AAI5E,UAAU,sBAAsB,CAAC,cAAc;IAC7C,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACxE,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IAC/C,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAA;IAClC,QAAQ,EAAE,YAAY,CAAA;IACtB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IACxC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,eAAO,MAAM,iBAAiB,8KAW3B,uBAAuB,cAAc,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,KAAG,WAmBtE,CAAA"}
1
+ {"version":3,"file":"LiveStoreProvider.d.ts","sourceRoot":"","sources":["../../src/react/LiveStoreProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,mBAAmB,EAAmB,MAAM,mBAAmB,CAAA;AAC3G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAG/D,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAIlF,UAAU,sBAAsB,CAAC,cAAc;IAC7C,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACxE,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,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;AAED,eAAO,MAAM,iBAAiB,GAAI,cAAc,SAAS,kBAAkB,2HAWxE,sBAAsB,CAAC,cAAc,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,KAAG,GAAG,CAAC,OA+B1E,CAAA"}
@@ -1,85 +1,112 @@
1
- import { shouldNeverHappen } from '@livestore/utils';
1
+ import { UnexpectedError } from '@livestore/common';
2
+ import { errorToString } from '@livestore/utils';
3
+ import { Effect, Exit, Logger, LogLevel, Schema, Scope } from '@livestore/utils/effect';
2
4
  import React from 'react';
3
5
  import { createStore } from '../store.js';
4
6
  import { LiveStoreContext } from './LiveStoreContext.js';
5
- export const LiveStoreProvider = ({ fallback, graphQLOptions, otelTracer, otelRootSpanContext, children, schema, boot, adapter, batchUpdates, disableDevtools, }) => {
7
+ export const LiveStoreProvider = ({ renderLoading, graphQLOptions, otelOptions, children, schema, boot, adapter, batchUpdates, disableDevtools, signal, }) => {
6
8
  const storeCtx = useCreateStore({
7
9
  schema,
8
10
  graphQLOptions,
9
- otelTracer,
10
- otelRootSpanContext,
11
+ otelOptions,
11
12
  boot,
12
13
  adapter,
13
14
  batchUpdates,
14
15
  disableDevtools,
16
+ signal,
15
17
  });
16
- if (storeCtx === undefined) {
17
- return fallback;
18
+ if (storeCtx.stage === 'error') {
19
+ return (React.createElement("div", null, Schema.is(UnexpectedError)(storeCtx.error) ? storeCtx.error.toString() : errorToString(storeCtx.error)));
20
+ }
21
+ if (storeCtx.stage === 'shutdown') {
22
+ return React.createElement("div", null, "LiveStore Shutdown");
23
+ }
24
+ if (storeCtx.stage !== 'running') {
25
+ return React.createElement("div", null, renderLoading(storeCtx));
18
26
  }
19
27
  window.__debugLiveStore = storeCtx.store;
20
28
  return React.createElement(LiveStoreContext.Provider, { value: storeCtx }, children);
21
29
  };
22
- const useCreateStore = ({ schema, graphQLOptions, otelTracer, otelRootSpanContext, boot, adapter, batchUpdates, disableDevtools, }) => {
30
+ const useCreateStore = ({ schema, graphQLOptions, otelOptions, boot, adapter, batchUpdates, disableDevtools, signal, }) => {
23
31
  const [_, rerender] = React.useState(0);
24
- const ctxValueRef = React.useRef(undefined);
32
+ const ctxValueRef = React.useRef({
33
+ value: { stage: 'loading' },
34
+ scope: undefined,
35
+ counter: 0,
36
+ });
37
+ // console.debug(`useCreateStore (${ctxValueRef.current.counter})`, ctxValueRef.current.value.stage)
25
38
  const inputPropsCacheRef = React.useRef({
26
39
  schema,
27
40
  graphQLOptions,
28
- otelTracer,
29
- otelRootSpanContext,
41
+ otelOptions,
30
42
  boot,
31
43
  adapter,
32
44
  batchUpdates,
45
+ disableDevtools,
46
+ signal,
33
47
  });
34
- const oldStoreAlreadyDestroyedRef = React.useRef(false);
35
48
  if (inputPropsCacheRef.current.schema !== schema ||
36
49
  inputPropsCacheRef.current.graphQLOptions !== graphQLOptions ||
37
- inputPropsCacheRef.current.otelTracer !== otelTracer ||
38
- inputPropsCacheRef.current.otelRootSpanContext !== otelRootSpanContext ||
50
+ inputPropsCacheRef.current.otelOptions !== otelOptions ||
39
51
  inputPropsCacheRef.current.boot !== boot ||
40
52
  inputPropsCacheRef.current.adapter !== adapter ||
41
- inputPropsCacheRef.current.batchUpdates !== batchUpdates) {
53
+ inputPropsCacheRef.current.batchUpdates !== batchUpdates ||
54
+ inputPropsCacheRef.current.disableDevtools !== disableDevtools ||
55
+ inputPropsCacheRef.current.signal !== signal) {
42
56
  inputPropsCacheRef.current = {
43
57
  schema,
44
58
  graphQLOptions,
45
- otelTracer,
46
- otelRootSpanContext,
59
+ otelOptions,
47
60
  boot,
48
61
  adapter,
49
62
  batchUpdates,
63
+ disableDevtools,
64
+ signal,
50
65
  };
51
- ctxValueRef.current?.store.destroy();
52
- oldStoreAlreadyDestroyedRef.current = true;
53
- ctxValueRef.current = undefined;
66
+ if (ctxValueRef.current.scope !== undefined) {
67
+ Scope.close(ctxValueRef.current.scope, Exit.void).pipe(Effect.tapCauseLogPretty, Effect.runFork);
68
+ }
69
+ ctxValueRef.current = { value: { stage: 'loading' }, scope: undefined, counter: ctxValueRef.current.counter + 1 };
54
70
  }
55
71
  React.useEffect(() => {
56
- let store;
57
- void (async () => {
58
- try {
59
- store = await createStore({
60
- schema,
61
- graphQLOptions,
62
- otelTracer,
63
- otelRootSpanContext,
64
- boot,
65
- adapter,
66
- batchUpdates,
67
- disableDevtools,
68
- });
69
- ctxValueRef.current = { store };
70
- oldStoreAlreadyDestroyedRef.current = false;
71
- rerender((c) => c + 1);
72
- }
73
- catch (e) {
74
- shouldNeverHappen(`Error creating LiveStore store: ${e}`);
72
+ const storeScope = Scope.make().pipe(Effect.runSync);
73
+ const counter = ctxValueRef.current.counter;
74
+ const setContextValue = (value) => {
75
+ if (ctxValueRef.current.counter !== counter)
76
+ return;
77
+ ctxValueRef.current.value = value;
78
+ rerender((c) => c + 1);
79
+ };
80
+ Scope.addFinalizer(storeScope, Effect.sync(() => setContextValue({ stage: 'shutdown' }))).pipe(Effect.runSync);
81
+ ctxValueRef.current.scope = storeScope;
82
+ signal?.addEventListener('abort', () => {
83
+ if (ctxValueRef.current.scope !== undefined && ctxValueRef.current.counter === counter) {
84
+ Scope.close(ctxValueRef.current.scope, Exit.void).pipe(Effect.tapCauseLogPretty, Effect.runFork);
85
+ ctxValueRef.current.scope = undefined;
75
86
  }
76
- })();
87
+ });
88
+ createStore({
89
+ storeScope,
90
+ schema,
91
+ graphQLOptions,
92
+ otelOptions,
93
+ boot,
94
+ adapter,
95
+ batchUpdates,
96
+ disableDevtools,
97
+ onBootStatus: (status) => {
98
+ if (ctxValueRef.current.value.stage === 'running' || ctxValueRef.current.value.stage === 'error')
99
+ return;
100
+ setContextValue(status);
101
+ },
102
+ }).pipe(Effect.tapSync((store) => setContextValue({ stage: 'running', store })), Effect.tapError((error) => Effect.sync(() => setContextValue({ stage: 'error', error }))), Effect.tapDefect((defect) => Effect.sync(() => setContextValue({ stage: 'error', error: defect }))), Scope.extend(storeScope), Effect.forkIn(storeScope), Effect.tapCauseLogPretty, Effect.annotateLogs({ thread: 'window' }), Effect.provide(Logger.pretty), Logger.withMinimumLogLevel(LogLevel.Debug), Effect.runFork);
77
103
  return () => {
78
- if (oldStoreAlreadyDestroyedRef.current === false) {
79
- store?.destroy();
104
+ if (ctxValueRef.current.scope !== undefined) {
105
+ Scope.close(ctxValueRef.current.scope, Exit.void).pipe(Effect.tapCauseLogPretty, Effect.runFork);
106
+ ctxValueRef.current.scope = undefined;
80
107
  }
81
108
  };
82
- }, [schema, graphQLOptions, otelTracer, otelRootSpanContext, boot, adapter, batchUpdates, disableDevtools]);
83
- return ctxValueRef.current;
109
+ }, [schema, graphQLOptions, otelOptions, boot, adapter, batchUpdates, disableDevtools, signal]);
110
+ return ctxValueRef.current.value;
84
111
  };
85
112
  //# sourceMappingURL=LiveStoreProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiveStoreProvider.js","sourceRoot":"","sources":["../../src/react/LiveStoreProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiveStoreProvider.js","sourceRoot":"","sources":["../../src/react/LiveStoreProvider.tsx"],"names":[],"mappings":"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"}
@@ -9,31 +9,52 @@ import * as LiveStoreReact from './index.js';
9
9
  import { LiveStoreProvider } from './LiveStoreProvider.js';
10
10
  describe('LiveStoreProvider', () => {
11
11
  it('simple', async () => {
12
- let renderCount = 0;
12
+ let appRenderCount = 0;
13
13
  const allTodos$ = querySQL(`select * from todos`, { map: parseTodos });
14
- let latestStoreCtx = undefined;
15
14
  const App = () => {
16
- renderCount++;
17
- latestStoreCtx = LiveStoreReact.useStore();
15
+ appRenderCount++;
18
16
  const todos = LiveStoreReact.useQuery(allTodos$);
19
17
  return React.createElement("div", null, JSON.stringify(todos));
20
18
  };
19
+ const abortController = new AbortController();
21
20
  const Root = ({ forceUpdate }) => {
22
21
  const bootCb = React.useCallback((db) => db.execute(sql `INSERT OR IGNORE INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0);`), []);
23
22
  // eslint-disable-next-line react-hooks/exhaustive-deps
24
23
  const adapterMemo = React.useMemo(() => makeInMemoryAdapter(), [forceUpdate]);
25
- return (React.createElement(LiveStoreProvider, { schema: schema, fallback: React.createElement("div", null, "Loading LiveStore"), adapter: adapterMemo, boot: bootCb },
24
+ return (React.createElement(LiveStoreProvider, { schema: schema, renderLoading: (status) => React.createElement("div", null,
25
+ "Loading LiveStore: ",
26
+ status.stage), adapter: adapterMemo, boot: bootCb, signal: abortController.signal },
26
27
  React.createElement(App, null)));
27
28
  };
28
29
  const { rerender } = render(React.createElement(Root, { forceUpdate: 1 }));
29
- expect(renderCount).toBe(0);
30
- await waitForElementToBeRemoved(() => screen.getByText('Loading LiveStore'));
31
- expect(renderCount).toBe(1);
30
+ expect(appRenderCount).toBe(0);
31
+ await waitForElementToBeRemoved(() => screen.getByText((_) => _.startsWith('Loading LiveStore')));
32
+ expect(appRenderCount).toBe(1);
32
33
  rerender(React.createElement(Root, { forceUpdate: 2 }));
33
- await waitFor(() => screen.getByText('Loading LiveStore'));
34
- await waitForElementToBeRemoved(() => screen.getByText('Loading LiveStore'));
35
- expect(renderCount).toBe(2);
36
- await latestStoreCtx.store.destroy();
34
+ await waitFor(() => screen.getByText('Loading LiveStore: loading'));
35
+ await waitFor(() => screen.getByText((_) => _.includes('buy milk')));
36
+ expect(appRenderCount).toBe(2);
37
+ abortController.abort();
38
+ await waitFor(() => screen.getByText('LiveStore Shutdown'));
39
+ });
40
+ it('error during boot', async () => {
41
+ let appRenderCount = 0;
42
+ const App = () => {
43
+ appRenderCount++;
44
+ return React.createElement("div", null, "hello world");
45
+ };
46
+ const Root = ({ forceUpdate }) => {
47
+ const bootCb = React.useCallback((db) => db.execute(sql `INSERT INTO todos_mising_table (id, text, completed) VALUES ('t1', 'buy milk', 0);`), []);
48
+ // eslint-disable-next-line react-hooks/exhaustive-deps
49
+ const adapterMemo = React.useMemo(() => makeInMemoryAdapter(), [forceUpdate]);
50
+ return (React.createElement(LiveStoreProvider, { schema: schema, renderLoading: (status) => React.createElement("div", null,
51
+ "Loading LiveStore: ",
52
+ status.stage), adapter: adapterMemo, boot: bootCb },
53
+ React.createElement(App, null)));
54
+ };
55
+ render(React.createElement(Root, { forceUpdate: 1 }));
56
+ expect(appRenderCount).toBe(0);
57
+ await waitFor(() => screen.getByText((_) => _.startsWith('LiveStore.UnexpectedError')));
37
58
  });
38
59
  });
39
60
  //# sourceMappingURL=LiveStoreProvider.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiveStoreProvider.test.js","sourceRoot":"","sources":["../../src/react/LiveStoreProvider.test.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAC3F,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAEpD,OAAO,KAAK,cAAc,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACtB,IAAI,WAAW,GAAG,CAAC,CAAA;QAEnB,MAAM,SAAS,GAAG,QAAQ,CAAC,qBAAqB,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAA;QACtE,IAAI,cAAc,GAAiC,SAAS,CAAA;QAE5D,MAAM,GAAG,GAAG,GAAG,EAAE;YACf,WAAW,EAAE,CAAA;YAEb,cAAc,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAA;YAE1C,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YAEhD,OAAO,iCAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAO,CAAA;QAC3C,CAAC,CAAA;QAED,MAAM,IAAI,GAAG,CAAC,EAAE,WAAW,EAA2B,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAC9B,CAAC,EAAU,EAAE,EAAE,CACb,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,iFAAiF,CAAC,EAClG,EAAE,CACH,CAAA;YACD,uDAAuD;YACvD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;YAC7E,OAAO,CACL,oBAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,qDAA4B,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;gBAC3G,oBAAC,GAAG,OAAG,CACW,CACrB,CAAA;QACH,CAAC,CAAA;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,oBAAC,IAAI,IAAC,WAAW,EAAE,CAAC,GAAI,CAAC,CAAA;QAErD,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3B,MAAM,yBAAyB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAE5E,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3B,QAAQ,CAAC,oBAAC,IAAI,IAAC,WAAW,EAAE,CAAC,GAAI,CAAC,CAAA;QAElC,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAC1D,MAAM,yBAAyB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAE5E,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3B,MAAM,cAAe,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"LiveStoreProvider.test.js","sourceRoot":"","sources":["../../src/react/LiveStoreProvider.test.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAC3F,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,KAAK,cAAc,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACtB,IAAI,cAAc,GAAG,CAAC,CAAA;QAEtB,MAAM,SAAS,GAAG,QAAQ,CAAC,qBAAqB,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAA;QAEtE,MAAM,GAAG,GAAG,GAAG,EAAE;YACf,cAAc,EAAE,CAAA;YAEhB,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YAEhD,OAAO,iCAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAO,CAAA;QAC3C,CAAC,CAAA;QAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAE7C,MAAM,IAAI,GAAG,CAAC,EAAE,WAAW,EAA2B,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAC9B,CAAC,EAAU,EAAE,EAAE,CACb,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,iFAAiF,CAAC,EAClG,EAAE,CACH,CAAA;YACD,uDAAuD;YACvD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;YAC7E,OAAO,CACL,oBAAC,iBAAiB,IAChB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;;oBAAyB,MAAM,CAAC,KAAK,CAAO,EACvE,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,CAAC,MAAM;gBAE9B,oBAAC,GAAG,OAAG,CACW,CACrB,CAAA;QACH,CAAC,CAAA;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,oBAAC,IAAI,IAAC,WAAW,EAAE,CAAC,GAAI,CAAC,CAAA;QAErD,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE9B,MAAM,yBAAyB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QAEjG,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE9B,QAAQ,CAAC,oBAAC,IAAI,IAAC,WAAW,EAAE,CAAC,GAAI,CAAC,CAAA;QAElC,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC,CAAA;QACnE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAEpE,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE9B,eAAe,CAAC,KAAK,EAAE,CAAA;QAEvB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QACjC,IAAI,cAAc,GAAG,CAAC,CAAA;QAEtB,MAAM,GAAG,GAAG,GAAG,EAAE;YACf,cAAc,EAAE,CAAA;YAEhB,OAAO,+CAAsB,CAAA;QAC/B,CAAC,CAAA;QAED,MAAM,IAAI,GAAG,CAAC,EAAE,WAAW,EAA2B,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAC9B,CAAC,EAAU,EAAE,EAAE,CACb,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,oFAAoF,CAAC,EACrG,EAAE,CACH,CAAA;YACD,uDAAuD;YACvD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;YAC7E,OAAO,CACL,oBAAC,iBAAiB,IAChB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;;oBAAyB,MAAM,CAAC,KAAK,CAAO,EACvE,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM;gBAEZ,oBAAC,GAAG,OAAG,CACW,CACrB,CAAA;QACH,CAAC,CAAA;QAED,MAAM,CAAC,oBAAC,IAAI,IAAC,WAAW,EAAE,CAAC,GAAI,CAAC,CAAA;QAEhC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE9B,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAA;IACzF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"LiveList.d.ts","sourceRoot":"","sources":["../../../src/react/components/LiveList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAWpE,MAAM,MAAM,aAAa,CAAC,KAAK,IAAI;IACjC,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IAEvC,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,OAAO,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAA;IACnG,+CAA+C;IAC/C,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAA;CACxD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,0CAA4C,cAAc,KAAK,CAAC,KAAG,MAAM,SA8B7F,CAAA"}
1
+ {"version":3,"file":"LiveList.d.ts","sourceRoot":"","sources":["../../../src/react/components/LiveList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAWpE,MAAM,MAAM,aAAa,CAAC,KAAK,IAAI;IACjC,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IAEvC,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,OAAO,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAA;IACnG,+CAA+C;IAC/C,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAA;CACxD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,kCAAmC,aAAa,CAAC,KAAK,CAAC,KAAG,KAAK,CAAC,SA8B7F,CAAA"}
@@ -6,5 +6,5 @@ export declare const useAtom: <TQuery extends LiveQuery<any, QueryInfoRow<TTable
6
6
  deriveMutations: {
7
7
  enabled: true;
8
8
  };
9
- }, import("@effect/schema/Schema").Schema<any, any, never>>>(query$: TQuery) => [value: TQuery['__result!'], setValue: Dispatch<SetStateAction<Partial<TQuery['__result!']>>>];
9
+ }>>(query$: TQuery) => [value: TQuery["__result!"], setValue: Dispatch<SetStateAction<Partial<TQuery["__result!"]>>>];
10
10
  //# sourceMappingURL=useAtom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAtom.d.ts","sourceRoot":"","sources":["../../src/react/useAtom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAGjE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE3D,eAAO,MAAM,OAAO;qBAK2B;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE;qEAGtD,MAAM,KACb,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,eAAe,QAAQ,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAoC/F,CAAA"}
1
+ {"version":3,"file":"useAtom.d.ts","sourceRoot":"","sources":["../../src/react/useAtom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAGjE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE3D,eAAO,MAAM,OAAO,GAClB,MAAM,SAAS,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,EACrF,SAAS,SAAS,QAAQ,CAAC,QAAQ,CACjC,QAAQ,CAAC,gCAAgC,EACzC,OAAO,EACP,QAAQ,CAAC,YAAY,GAAG;IAAE,eAAe,EAAE;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAA;CAAE,CAC/D,UAEO,MAAM,KACb,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAoC/F,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLocalId.d.ts","sourceRoot":"","sources":["../../src/react/useLocalId.ts"],"names":[],"mappings":"AAGA,KAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,SAAS,GAAG,OAAO,CAAA;IAChC,gBAAgB,EAAE,MAAM,CAAA;IACxB,MAAM,EAAE,MAAM,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,UAAU,UAAW,QAAQ,cAAc,CAAC,WAAkD,CAAA;AAE3G,eAAO,MAAM,UAAU,UAAW,QAAQ,cAAc,CAAC,WAoBxD,CAAA"}
1
+ {"version":3,"file":"useLocalId.d.ts","sourceRoot":"","sources":["../../src/react/useLocalId.ts"],"names":[],"mappings":"AAGA,KAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,SAAS,GAAG,OAAO,CAAA;IAChC,gBAAgB,EAAE,MAAM,CAAA;IACxB,MAAM,EAAE,MAAM,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,UAAU,UAAW,OAAO,CAAC,cAAc,CAAC,WAAkD,CAAA;AAE3G,eAAO,MAAM,UAAU,UAAW,OAAO,CAAC,cAAc,CAAC,WAoBxD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../src/react/useQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAiB/E,eAAO,MAAM,QAAQ,uCAAwC,MAAM,KAAG,UAAU,MAAM,CAA+B,CAAA;AAErH;;GAEG;AACH,eAAO,MAAM,WAAW,wCACd,MAAM,sBACM,KAAK,OAAO,KAC/B,MAAM,gBAAgB,CAAC,UAAU,MAAM,CAAC,CA2E1C,CAAA"}
1
+ {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../src/react/useQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAiB/E,eAAO,MAAM,QAAQ,GAAI,MAAM,SAAS,YAAY,SAAS,MAAM,KAAG,SAAS,CAAC,MAAM,CAA+B,CAAA;AAErH;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,SAAS,YAAY,UAC7C,MAAM,sBACM,IAAI,CAAC,OAAO,KAC/B,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CA2E1C,CAAA"}
@@ -1,5 +1,5 @@
1
+ import { deepEqual } from '@livestore/utils';
1
2
  import * as otel from '@opentelemetry/api';
2
- import { isEqual } from 'lodash-es';
3
3
  import React from 'react';
4
4
  import { useStore } from './LiveStoreContext.js';
5
5
  import { extractStackInfoFromStackTrace, originalStackLimit } from './utils/stack-info.js';
@@ -57,7 +57,7 @@ export const useQueryRef = (query$, parentOtelContext) => {
57
57
  // NOTE: we return a reference to the result object within LiveStore;
58
58
  // this implies that app code must not mutate the results, or else
59
59
  // there may be weird reactivity bugs.
60
- if (isEqual(newValue, valueRef.current) === false) {
60
+ if (deepEqual(newValue, valueRef.current) === false) {
61
61
  setValue(newValue);
62
62
  }
63
63
  }, () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.js","sourceRoot":"","sources":["../../src/react/useQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useQuery.js","sourceRoot":"","sources":["../../src/react/useQuery.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { QueryInfo } from '@livestore/common';
2
2
  import { DbSchema } from '@livestore/common/schema';
3
- import type { DbGraph, LiveQuery } from '../index.js';
3
+ import type { LiveQuery, ReactivityGraph } from '../index.js';
4
4
  import type { RowResult } from '../row-query.js';
5
5
  export type UseRowResult<TTableDef extends DbSchema.TableDef> = [
6
6
  row: RowResult<TTableDef>,
@@ -11,7 +11,7 @@ export type UseRowOptionsDefaulValues<TTableDef extends DbSchema.TableDef> = {
11
11
  defaultValues?: Partial<RowResult<TTableDef>>;
12
12
  };
13
13
  export type UseRowOptionsBase = {
14
- dbGraph?: DbGraph;
14
+ reactivityGraph?: ReactivityGraph;
15
15
  };
16
16
  /**
17
17
  * Similar to `React.useState` but returns a tuple of `[row, setRow, query$]` for a given table where ...
@@ -1 +1 @@
1
- {"version":3,"file":"useRow.d.ts","sourceRoot":"","sources":["../../src/react/useRow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAIlD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAMnD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAMhD,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI;IAC9D,GAAG,EAAE,SAAS,CAAC,SAAS,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC;IAC/B,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CACnD,CAAA;AAED,MAAM,MAAM,yBAAyB,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI;IAC3E,aAAa,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;CAC9C,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,EAAE;IACnB,CACE,SAAS,SAAS,QAAQ,CAAC,QAAQ,CACjC,QAAQ,CAAC,qBAAqB,EAC9B,OAAO,EACP,QAAQ,CAAC,YAAY,GAAG;QAAE,WAAW,EAAE,IAAI,CAAC;QAAC,eAAe,EAAE;YAAE,OAAO,EAAE,IAAI,CAAA;SAAE,CAAA;KAAE,CAClF,EAED,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,YAAY,CAAC,SAAS,CAAC,CAAA;IAC1B,CACE,SAAS,SAAS,QAAQ,CAAC,QAAQ,CACjC,QAAQ,CAAC,qBAAqB,EAC9B,OAAO,EACP,QAAQ,CAAC,YAAY,GAAG;QAAE,WAAW,EAAE,KAAK,CAAC;QAAC,eAAe,EAAE;YAAE,OAAO,EAAE,IAAI,CAAA;SAAE,CAAA;KAAE,CACnF,EAED,KAAK,EAAE,SAAS,EAEhB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,iBAAiB,GAAG,yBAAyB,CAAC,SAAS,CAAC,GACjE,YAAY,CAAC,SAAS,CAAC,CAAA;CA6G3B,CAAA;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAA;AAC7C,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;AAE7D,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC,gBAAgB,CAAC,SAAS,IAAI,GACpG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAC9C;KACG,CAAC,IAAI,MAAM,SAAS,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrF,GAAG;IACF,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;CACjE,CAAA"}
1
+ {"version":3,"file":"useRow.d.ts","sourceRoot":"","sources":["../../src/react/useRow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAMnD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAMhD,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI;IAC9D,GAAG,EAAE,SAAS,CAAC,SAAS,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC;IAC/B,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CACnD,CAAA;AAED,MAAM,MAAM,yBAAyB,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI;IAC3E,aAAa,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;CAC9C,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,EAAE;IACnB,CACE,SAAS,SAAS,QAAQ,CAAC,QAAQ,CACjC,QAAQ,CAAC,qBAAqB,EAC9B,OAAO,EACP,QAAQ,CAAC,YAAY,GAAG;QAAE,WAAW,EAAE,IAAI,CAAC;QAAC,eAAe,EAAE;YAAE,OAAO,EAAE,IAAI,CAAA;SAAE,CAAA;KAAE,CAClF,EAED,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,YAAY,CAAC,SAAS,CAAC,CAAA;IAC1B,CACE,SAAS,SAAS,QAAQ,CAAC,QAAQ,CACjC,QAAQ,CAAC,qBAAqB,EAC9B,OAAO,EACP,QAAQ,CAAC,YAAY,GAAG;QAAE,WAAW,EAAE,KAAK,CAAC;QAAC,eAAe,EAAE;YAAE,OAAO,EAAE,IAAI,CAAA;SAAE,CAAA;KAAE,CACnF,EAED,KAAK,EAAE,SAAS,EAEhB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,iBAAiB,GAAG,yBAAyB,CAAC,SAAS,CAAC,GACjE,YAAY,CAAC,SAAS,CAAC,CAAA;CA6G3B,CAAA;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAA;AAC7C,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;AAE7D,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC,gBAAgB,CAAC,SAAS,IAAI,GACpG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAC9C;KACG,CAAC,IAAI,MAAM,SAAS,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrF,GAAG;IACF,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;CACjE,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { DbSchema } from '@livestore/common/schema';
2
2
  import { shouldNeverHappen } from '@livestore/utils';
3
- import { mapValues } from 'lodash-es';
3
+ import { ReadonlyRecord } from '@livestore/utils/effect';
4
4
  import React from 'react';
5
5
  import { rowQuery } from '../row-query.js';
6
6
  import { useStore } from './LiveStoreContext.js';
@@ -19,7 +19,7 @@ export const useRow = (table, idOrOptions, options_) => {
19
19
  const sqliteTableDef = table.sqliteDef;
20
20
  const id = typeof idOrOptions === 'string' ? idOrOptions : undefined;
21
21
  const options = typeof idOrOptions === 'string' ? options_ : idOrOptions;
22
- const { defaultValues, dbGraph } = options ?? {};
22
+ const { defaultValues, reactivityGraph } = options ?? {};
23
23
  const tableName = table.sqliteDef.name;
24
24
  if (DbSchema.tableHasDerivedMutations(table) === false) {
25
25
  shouldNeverHappen(`useRow called on table "${tableName}" which does not have 'deriveMutations: true' set`);
@@ -31,11 +31,11 @@ export const useRow = (table, idOrOptions, options_) => {
31
31
  }
32
32
  // console.debug('useRow', tableName, id)
33
33
  const { query$, otelContext } = useMakeTemporaryQuery((otelContext) => DbSchema.tableIsSingleton(table)
34
- ? rowQuery(table, { otelContext, dbGraph })
34
+ ? rowQuery(table, { otelContext, reactivityGraph })
35
35
  : rowQuery(table, id, {
36
36
  otelContext,
37
37
  defaultValues: defaultValues,
38
- dbGraph,
38
+ reactivityGraph,
39
39
  }), [id, tableName], {
40
40
  otel: {
41
41
  spanName: `LiveStore:useRow:${tableName}${id === undefined ? '' : `:${id}`}`,
@@ -61,7 +61,7 @@ export const useRow = (table, idOrOptions, options_) => {
61
61
  }
62
62
  else {
63
63
  const setState = // TODO: do we have a better type for the values that can go in SQLite?
64
- mapValues(sqliteTableDef.columns, (column, columnName) => (newValueOrFn) => {
64
+ ReadonlyRecord.map(sqliteTableDef.columns, (column, columnName) => (newValueOrFn) => {
65
65
  const newValue =
66
66
  // @ts-expect-error TODO fix typing
67
67
  typeof newValueOrFn === 'function' ? newValueOrFn(query$Ref.current[columnName]) : newValueOrFn;
@@ -1 +1 @@
1
- {"version":3,"file":"useRow.js","sourceRoot":"","sources":["../../src/react/useRow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useRow.js","sourceRoot":"","sources":["../../src/react/useRow.ts"],"names":[],"mappings":"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"}
@@ -11,12 +11,12 @@ import * as LiveStoreReact from './index.js';
11
11
  // NOTE running tests concurrently doesn't work with the default global db graph
12
12
  describe.concurrent('useRow', () => {
13
13
  it('should update the data based on component key', async () => {
14
- using inputs = await makeTodoMvc({ useGlobalDbGraph: false });
15
- const { wrapper, AppComponentSchema, store, dbGraph, makeRenderCount } = inputs;
14
+ using inputs = await makeTodoMvc({ useGlobalReactivityGraph: false });
15
+ const { wrapper, AppComponentSchema, store, reactivityGraph, makeRenderCount } = inputs;
16
16
  const renderCount = makeRenderCount();
17
17
  const { result, rerender } = renderHook((userId) => {
18
18
  renderCount.inc();
19
- const [state, setState] = LiveStoreReact.useRow(AppComponentSchema, userId, { dbGraph });
19
+ const [state, setState] = LiveStoreReact.useRow(AppComponentSchema, userId, { reactivityGraph });
20
20
  return { state, setState };
21
21
  }, { wrapper, initialProps: 'u1' });
22
22
  expect(result.current.state.id).toBe('u1');
@@ -32,12 +32,12 @@ describe.concurrent('useRow', () => {
32
32
  });
33
33
  // TODO add a test that makes sure React doesn't re-render when a setter is used to set the same value
34
34
  it('should update the data reactively - via setState', async () => {
35
- using inputs = await makeTodoMvc({ useGlobalDbGraph: false });
36
- const { wrapper, AppComponentSchema, dbGraph, makeRenderCount } = inputs;
35
+ using inputs = await makeTodoMvc({ useGlobalReactivityGraph: false });
36
+ const { wrapper, AppComponentSchema, reactivityGraph, makeRenderCount } = inputs;
37
37
  const renderCount = makeRenderCount();
38
38
  const { result } = renderHook((userId) => {
39
39
  renderCount.inc();
40
- const [state, setState] = LiveStoreReact.useRow(AppComponentSchema, userId, { dbGraph });
40
+ const [state, setState] = LiveStoreReact.useRow(AppComponentSchema, userId, { reactivityGraph });
41
41
  return { state, setState };
42
42
  }, { wrapper, initialProps: 'u1' });
43
43
  expect(result.current.state.id).toBe('u1');
@@ -49,12 +49,12 @@ describe.concurrent('useRow', () => {
49
49
  expect(renderCount.val).toBe(2);
50
50
  });
51
51
  it('should update the data reactively - via raw store mutation', async () => {
52
- using inputs = await makeTodoMvc({ useGlobalDbGraph: false });
53
- const { wrapper, AppComponentSchema, store, dbGraph, makeRenderCount } = inputs;
52
+ using inputs = await makeTodoMvc({ useGlobalReactivityGraph: false });
53
+ const { wrapper, AppComponentSchema, store, reactivityGraph, makeRenderCount } = inputs;
54
54
  const renderCount = makeRenderCount();
55
55
  const { result } = renderHook((userId) => {
56
56
  renderCount.inc();
57
- const [state, setState] = LiveStoreReact.useRow(AppComponentSchema, userId, { dbGraph });
57
+ const [state, setState] = LiveStoreReact.useRow(AppComponentSchema, userId, { reactivityGraph });
58
58
  return { state, setState };
59
59
  }, { wrapper, initialProps: 'u1' });
60
60
  expect(result.current.state.id).toBe('u1');
@@ -68,14 +68,14 @@ describe.concurrent('useRow', () => {
68
68
  expect(renderCount.val).toBe(2);
69
69
  });
70
70
  it('should work for a larger app', async () => {
71
- using inputs = await makeTodoMvc({ useGlobalDbGraph: false });
72
- const { wrapper, store, dbGraph, makeRenderCount, AppRouterSchema } = inputs;
73
- const allTodos$ = LiveStore.querySQL(`select * from todos`, { label: 'allTodos', dbGraph });
71
+ using inputs = await makeTodoMvc({ useGlobalReactivityGraph: false });
72
+ const { wrapper, store, reactivityGraph, makeRenderCount, AppRouterSchema } = inputs;
73
+ const allTodos$ = LiveStore.querySQL(`select * from todos`, { label: 'allTodos', reactivityGraph });
74
74
  const appRouterRenderCount = makeRenderCount();
75
75
  let globalSetState;
76
76
  const AppRouter = () => {
77
77
  appRouterRenderCount.inc();
78
- const [state, setState] = LiveStoreReact.useRow(AppRouterSchema, { dbGraph });
78
+ const [state, setState] = LiveStoreReact.useRow(AppRouterSchema, { reactivityGraph });
79
79
  globalSetState = setState;
80
80
  return (React.createElement("div", null,
81
81
  React.createElement(TasksList, { setTaskId: setState.currentTaskId }),
@@ -89,7 +89,7 @@ describe.concurrent('useRow', () => {
89
89
  return (React.createElement("div", null, allTodos.map((_) => (React.createElement("div", { key: _.id, onClick: () => setTaskId(_.id) }, _.id)))));
90
90
  };
91
91
  const TaskDetails = ({ id }) => {
92
- const [todo] = LiveStoreReact.useRow(todos, id, { dbGraph });
92
+ const [todo] = LiveStoreReact.useRow(todos, id, { reactivityGraph });
93
93
  return React.createElement("div", { role: "content" }, JSON.stringify(todo));
94
94
  };
95
95
  const renderResult = render(React.createElement(AppRouter, null), { wrapper });
@@ -112,14 +112,14 @@ describe.concurrent('useRow', () => {
112
112
  expect(renderResult.getByRole('current-id').innerHTML).toMatchInlineSnapshot('"Current Task Id: t2"');
113
113
  });
114
114
  it('should work for a useRow query chained with a useTemporary query', async () => {
115
- using inputs = await makeTodoMvc({ useGlobalDbGraph: false });
116
- const { store, wrapper, AppComponentSchema, dbGraph, makeRenderCount } = inputs;
115
+ using inputs = await makeTodoMvc({ useGlobalReactivityGraph: false });
116
+ const { store, wrapper, AppComponentSchema, reactivityGraph, makeRenderCount } = inputs;
117
117
  const renderCount = makeRenderCount();
118
118
  store.mutate(todos.insert({ id: 't1', text: 'buy milk', completed: false }), todos.insert({ id: 't2', text: 'buy bread', completed: false }));
119
119
  const { result, unmount, rerender } = renderHook((userId) => {
120
120
  renderCount.inc();
121
- const [_row, _setRow, rowState$] = LiveStoreReact.useRow(AppComponentSchema, userId, { dbGraph });
122
- const todos = LiveStoreReact.useTemporaryQuery(() => LiveStore.querySQL((get) => LiveStore.sql `select * from todos where text like '%${get(rowState$).text}%'`, { dbGraph, label: 'todosFiltered' }), userId);
121
+ const [_row, _setRow, rowState$] = LiveStoreReact.useRow(AppComponentSchema, userId, { reactivityGraph });
122
+ const todos = LiveStoreReact.useTemporaryQuery(() => LiveStore.querySQL((get) => LiveStore.sql `select * from todos where text like '%${get(rowState$).text}%'`, { reactivityGraph, label: 'todosFiltered' }), userId);
123
123
  return { todos };
124
124
  }, { wrapper, initialProps: 'u1' });
125
125
  React.act(() => store.mutate(LiveStore.rawSqlMutation({
@@ -144,12 +144,12 @@ describe.concurrent('useRow', () => {
144
144
  const span = otelTracer.startSpan('test');
145
145
  const otelContext = otel.trace.setSpan(otel.context.active(), span);
146
146
  it('should update the data based on component key', async () => {
147
- using inputs = await makeTodoMvc({ useGlobalDbGraph: false, otelContext, otelTracer });
148
- const { wrapper, AppComponentSchema, store, dbGraph, makeRenderCount, strictMode } = inputs;
147
+ using inputs = await makeTodoMvc({ useGlobalReactivityGraph: false, otelContext, otelTracer });
148
+ const { wrapper, AppComponentSchema, store, reactivityGraph, makeRenderCount, strictMode } = inputs;
149
149
  const renderCount = makeRenderCount();
150
150
  const { result, rerender, unmount } = renderHook((userId) => {
151
151
  renderCount.inc();
152
- const [state, setState] = LiveStoreReact.useRow(AppComponentSchema, userId, { dbGraph });
152
+ const [state, setState] = LiveStoreReact.useRow(AppComponentSchema, userId, { reactivityGraph });
153
153
  return { state, setState };
154
154
  }, { wrapper, initialProps: 'u1' });
155
155
  expect(result.current.state.id).toBe('u1');
@@ -163,7 +163,7 @@ describe.concurrent('useRow', () => {
163
163
  expect(result.current.state.username).toBe('username_u2');
164
164
  expect(renderCount.val).toBe(2);
165
165
  unmount();
166
- store.destroy();
166
+ await store.destroy();
167
167
  span.end();
168
168
  const mapAttributes = (attributes) => {
169
169
  return ReadonlyRecord.map(attributes, (val, key) => {