@livestore/livestore 0.0.16 → 0.0.21

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 (126) hide show
  1. package/README.md +18 -21
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/QueryCache.d.ts +1 -1
  4. package/dist/QueryCache.d.ts.map +1 -1
  5. package/dist/QueryCache.js.map +1 -1
  6. package/dist/__tests__/react/fixture.d.ts +5 -4
  7. package/dist/__tests__/react/fixture.d.ts.map +1 -1
  8. package/dist/__tests__/react/fixture.js +5 -5
  9. package/dist/__tests__/react/fixture.js.map +1 -1
  10. package/dist/__tests__/react/useComponentState.test.d.ts +2 -0
  11. package/dist/__tests__/react/useComponentState.test.d.ts.map +1 -0
  12. package/dist/__tests__/react/useComponentState.test.js +68 -0
  13. package/dist/__tests__/react/useComponentState.test.js.map +1 -0
  14. package/dist/__tests__/react/useLQuery.test.d.ts +2 -0
  15. package/dist/__tests__/react/useLQuery.test.d.ts.map +1 -0
  16. package/dist/__tests__/react/useLQuery.test.js +38 -0
  17. package/dist/__tests__/react/useLQuery.test.js.map +1 -0
  18. package/dist/__tests__/react/useLiveStoreComponent.test.js +4 -9
  19. package/dist/__tests__/react/useLiveStoreComponent.test.js.map +1 -1
  20. package/dist/__tests__/react/useQuery.test.d.ts +2 -0
  21. package/dist/__tests__/react/useQuery.test.d.ts.map +1 -0
  22. package/dist/__tests__/react/useQuery.test.js +33 -0
  23. package/dist/__tests__/react/useQuery.test.js.map +1 -0
  24. package/dist/__tests__/react/utils/extractStackInfoFromStackTrace.test.d.ts +2 -0
  25. package/dist/__tests__/react/utils/extractStackInfoFromStackTrace.test.d.ts.map +1 -0
  26. package/dist/__tests__/react/utils/extractStackInfoFromStackTrace.test.js +38 -0
  27. package/dist/__tests__/react/utils/extractStackInfoFromStackTrace.test.js.map +1 -0
  28. package/dist/__tests__/reactive.test.js +167 -93
  29. package/dist/__tests__/reactive.test.js.map +1 -1
  30. package/dist/__tests__/reactiveQueries/sql.test.d.ts +2 -0
  31. package/dist/__tests__/reactiveQueries/sql.test.d.ts.map +1 -0
  32. package/dist/__tests__/reactiveQueries/sql.test.js +337 -0
  33. package/dist/__tests__/reactiveQueries/sql.test.js.map +1 -0
  34. package/dist/inMemoryDatabase.d.ts +2 -2
  35. package/dist/inMemoryDatabase.d.ts.map +1 -1
  36. package/dist/index.d.ts +7 -5
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +4 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/react/index.d.ts +3 -3
  41. package/dist/react/index.d.ts.map +1 -1
  42. package/dist/react/index.js +2 -2
  43. package/dist/react/index.js.map +1 -1
  44. package/dist/react/useComponentState.d.ts +50 -0
  45. package/dist/react/useComponentState.d.ts.map +1 -0
  46. package/dist/react/useComponentState.js +248 -0
  47. package/dist/react/useComponentState.js.map +1 -0
  48. package/dist/react/useGlobalQuery.d.ts +3 -0
  49. package/dist/react/useGlobalQuery.d.ts.map +1 -0
  50. package/dist/react/useGlobalQuery.js +26 -0
  51. package/dist/react/useGlobalQuery.js.map +1 -0
  52. package/dist/react/useGraphQL.d.ts +3 -3
  53. package/dist/react/useGraphQL.d.ts.map +1 -1
  54. package/dist/react/useGraphQL.js +10 -8
  55. package/dist/react/useGraphQL.js.map +1 -1
  56. package/dist/react/useLiveStoreComponent.d.ts +6 -6
  57. package/dist/react/useLiveStoreComponent.d.ts.map +1 -1
  58. package/dist/react/useLiveStoreComponent.js +143 -99
  59. package/dist/react/useLiveStoreComponent.js.map +1 -1
  60. package/dist/react/useQuery.d.ts +2 -2
  61. package/dist/react/useQuery.d.ts.map +1 -1
  62. package/dist/react/useQuery.js +26 -22
  63. package/dist/react/useQuery.js.map +1 -1
  64. package/dist/react/useTemporaryQuery.d.ts +8 -0
  65. package/dist/react/useTemporaryQuery.d.ts.map +1 -0
  66. package/dist/react/useTemporaryQuery.js +17 -0
  67. package/dist/react/useTemporaryQuery.js.map +1 -0
  68. package/dist/react/utils/extractNamesFromStackTrace.d.ts +3 -0
  69. package/dist/react/utils/extractNamesFromStackTrace.d.ts.map +1 -0
  70. package/dist/react/utils/extractNamesFromStackTrace.js +40 -0
  71. package/dist/react/utils/extractNamesFromStackTrace.js.map +1 -0
  72. package/dist/react/utils/extractStackInfoFromStackTrace.d.ts +7 -0
  73. package/dist/react/utils/extractStackInfoFromStackTrace.d.ts.map +1 -0
  74. package/dist/react/utils/extractStackInfoFromStackTrace.js +40 -0
  75. package/dist/react/utils/extractStackInfoFromStackTrace.js.map +1 -0
  76. package/dist/reactive.d.ts +42 -48
  77. package/dist/reactive.d.ts.map +1 -1
  78. package/dist/reactive.js +293 -186
  79. package/dist/reactive.js.map +1 -1
  80. package/dist/reactiveQueries/base-class.d.ts +28 -23
  81. package/dist/reactiveQueries/base-class.d.ts.map +1 -1
  82. package/dist/reactiveQueries/base-class.js +25 -18
  83. package/dist/reactiveQueries/base-class.js.map +1 -1
  84. package/dist/reactiveQueries/graph.d.ts +10 -0
  85. package/dist/reactiveQueries/graph.d.ts.map +1 -0
  86. package/dist/reactiveQueries/graph.js +6 -0
  87. package/dist/reactiveQueries/graph.js.map +1 -0
  88. package/dist/reactiveQueries/graphql.d.ts +34 -17
  89. package/dist/reactiveQueries/graphql.d.ts.map +1 -1
  90. package/dist/reactiveQueries/graphql.js +91 -10
  91. package/dist/reactiveQueries/graphql.js.map +1 -1
  92. package/dist/reactiveQueries/js.d.ts +16 -12
  93. package/dist/reactiveQueries/js.d.ts.map +1 -1
  94. package/dist/reactiveQueries/js.js +31 -8
  95. package/dist/reactiveQueries/js.js.map +1 -1
  96. package/dist/reactiveQueries/sql.d.ts +22 -18
  97. package/dist/reactiveQueries/sql.d.ts.map +1 -1
  98. package/dist/reactiveQueries/sql.js +82 -16
  99. package/dist/reactiveQueries/sql.js.map +1 -1
  100. package/dist/store.d.ts +12 -52
  101. package/dist/store.d.ts.map +1 -1
  102. package/dist/store.js +283 -264
  103. package/dist/store.js.map +1 -1
  104. package/package.json +10 -9
  105. package/src/QueryCache.ts +1 -1
  106. package/src/__tests__/react/fixture.tsx +12 -7
  107. package/src/__tests__/react/{useLiveStoreComponent.test.tsx → useComponentState.test.tsx} +9 -20
  108. package/src/__tests__/react/useQuery.test.tsx +48 -0
  109. package/src/__tests__/react/utils/extractStackInfoFromStackTrace.test.ts +40 -0
  110. package/src/__tests__/reactive.test.ts +193 -140
  111. package/src/__tests__/reactiveQueries/sql.test.ts +372 -0
  112. package/src/inMemoryDatabase.ts +2 -2
  113. package/src/index.ts +7 -11
  114. package/src/react/index.ts +3 -7
  115. package/src/react/{useLiveStoreComponent.ts → useComponentState.ts} +89 -247
  116. package/src/react/useQuery.ts +29 -27
  117. package/src/react/useTemporaryQuery.ts +21 -0
  118. package/src/react/utils/extractStackInfoFromStackTrace.ts +47 -0
  119. package/src/reactive.ts +385 -268
  120. package/src/reactiveQueries/base-class.ts +60 -44
  121. package/src/reactiveQueries/graph.ts +15 -0
  122. package/src/reactiveQueries/graphql.ts +145 -29
  123. package/src/reactiveQueries/js.ts +53 -20
  124. package/src/reactiveQueries/sql.ts +129 -36
  125. package/src/store.ts +338 -408
  126. package/src/react/useGraphQL.ts +0 -138
@@ -7,6 +7,9 @@ import React from 'react';
7
7
  import { v4 as uuid } from 'uuid';
8
8
  import { labelForKey, tableNameForComponentKey } from '../componentKey.js';
9
9
  import { migrateTable } from '../migrations.js';
10
+ import { queryGraphQL } from '../reactiveQueries/graphql.js';
11
+ import { LiveStoreJSQuery } from '../reactiveQueries/js.js';
12
+ import { LiveStoreSQLQuery } from '../reactiveQueries/sql.js';
10
13
  import { SCHEMA_META_TABLE } from '../schema.js';
11
14
  import { sql } from '../util.js';
12
15
  import { useStore } from './LiveStoreContext.js';
@@ -28,7 +31,7 @@ const spanAlreadyStartedCache = new Map();
28
31
  * @param config.componentKey A function that returns a unique key for this component.
29
32
  * @param config.reactDeps A list of React-level dependencies that will refresh the queries.
30
33
  */
31
- export const useLiveStoreComponent = ({ stateSchema: stateSchema_, queries = () => ({}), componentKey: componentKeyConfig, reactDeps = [], }) => {
34
+ export const useLiveStoreComponent = ({ stateSchema: stateSchema_, queries: queriesDef = () => ({}), componentKey: componentKeyConfig, reactDeps = [], }) => {
32
35
  // TODO validate schema to make sure each column has a default value
33
36
  // TODO we should clean up the state schema handling to remove this special handling for the `id` column
34
37
  const stateSchema = React.useMemo(() => (stateSchema_ ? { ...stateSchema_, columns: omit(stateSchema_.columns, 'id') } : undefined), [stateSchema_]);
@@ -50,10 +53,15 @@ export const useLiveStoreComponent = ({ stateSchema: stateSchema_, queries = ()
50
53
  spanAlreadyStartedCache.delete(componentKeyLabel);
51
54
  span.end();
52
55
  }, [componentKeyLabel, span]);
53
- const generateQueries = React.useCallback(({ state$, otelContext, registerSubscription, isTemporaryQuery, }) => queries({
54
- rxSQL: (genQuery, queriedTables, bindValues) => store.querySQL(genQuery, { queriedTables, bindValues, otelContext, componentKey }),
55
- rxGraphQL: (query, genVariableValues, label) => store.queryGraphQL(query, genVariableValues, { componentKey, label, otelContext }),
56
- rxJS: (genQuery) => store.queryJS(genQuery, { componentKey, otelContext }),
56
+ const generateQueries = React.useCallback(({ state$, registerSubscription, isTemporaryQuery, }) => queriesDef({
57
+ rxSQL: (genQuery, queriedTables, bindValues) => new LiveStoreSQLQuery({
58
+ label: 'todo',
59
+ genQueryString: genQuery,
60
+ bindValues,
61
+ queriedTables,
62
+ }),
63
+ rxGraphQL: (query, genVariableValues, label) => queryGraphQL(query, genVariableValues, { label }),
64
+ // rxJS: <T>(genQuery: (get: GetAtomResult) => T) => store.queryJS(genQuery, { componentKey, otelContext }),
57
65
  state$,
58
66
  subscribe: registerSubscription,
59
67
  isTemporaryQuery,
@@ -72,81 +80,94 @@ export const useLiveStoreComponent = ({ stateSchema: stateSchema_, queries = ()
72
80
  return defaultState;
73
81
  }, [componentKeyConfig.id, stateSchema]);
74
82
  const componentStateEffectSchema = React.useMemo(() => (stateSchema ? SqliteDsl.structSchemaForTable(stateSchema) : Schema.any), [stateSchema]);
75
- // Step 1:
76
- // Synchronously create state and queries for initial render pass.
77
- // We do this in a temporary query context which cleans up after itself, making it idempotent
78
- // TODO get rid of the temporary query workaround
79
- const { initialComponentState, initialQueryResults } = React.useMemo(() => {
80
- return store.otel.tracer.startActiveSpan('LiveStore:useLiveStoreComponent:initial', {}, otelContext, (span) => {
81
- const otelContext = otel.trace.setSpan(otel.context.active(), span);
82
- // NOTE `inTempQueryContext` automatically destroys the queries once the callback is done
83
- return store.inTempQueryContext(() => {
84
- try {
85
- // create state query
86
- let state$;
87
- if (stateSchema === undefined) {
88
- // TODO don't set up a query if there's no state schema (keeps the graph more clean)
89
- state$ = store.queryJS(() => ({}), {
90
- componentKey,
91
- otelContext,
92
- });
93
- }
94
- else {
95
- const componentTableName = tableNameForComponentKey(componentKey);
96
- const whereClause = componentKey._tag === 'singleton' ? '' : `where id = '${componentKey.id}'`;
97
- // TODO find a better solution for this
98
- if (store.tableRefs[componentTableName] === undefined) {
99
- const schemaHash = SqliteAst.hash(stateSchema.ast);
100
- const res = store.inMemoryDB.select(sql `SELECT schemaHash FROM ${SCHEMA_META_TABLE} WHERE tableName = '${componentTableName}'`);
101
- if (res.length === 0 || res[0].schemaHash !== schemaHash) {
102
- migrateTable({ db: store._proxyDb, tableDef: stateSchema.ast, otelContext, schemaHash });
103
- }
104
- store.tableRefs[componentTableName] = store.graph.makeRef(null, {
105
- equal: () => false,
106
- label: componentTableName,
107
- meta: { liveStoreRefType: 'table' },
108
- });
109
- }
110
- state$ = store
111
- .querySQL(() => sql `select * from ${componentTableName} ${whereClause} limit 1`, {
112
- queriedTables: [componentTableName],
113
- componentKey,
114
- label: `localState:query:${componentKeyLabel}`,
115
- otelContext,
116
- })
117
- // TODO consider to instead of just returning the default value, to write the default component state to the DB
118
- .pipe((results) => results.length === 1
119
- ? Schema.parseSync(componentStateEffectSchema)(results[0])
120
- : defaultComponentState);
121
- }
122
- const initialComponentState = state$.results$.result;
123
- const queries = generateQueries({
124
- state$: state$,
125
- otelContext,
126
- registerSubscription: () => { },
127
- isTemporaryQuery: true,
128
- });
129
- for (const [name, query] of Object.entries(queries)) {
130
- query.label = name;
131
- }
132
- const initialQueryResults = mapValues(queries, (query) => query.results$.result);
133
- return { initialComponentState, initialQueryResults };
134
- }
135
- finally {
136
- span.end();
137
- }
83
+ const state$ = React.useMemo(() => {
84
+ // create state query
85
+ if (stateSchema === undefined) {
86
+ // TODO don't set up a query if there's no state schema (keeps the graph more clean)
87
+ return new LiveStoreJSQuery({
88
+ fn: () => ({}),
89
+ label: 'empty-component-state',
90
+ // otelContext,
91
+ // otelTracer: store.otel.tracer,
138
92
  });
139
- });
93
+ }
94
+ else {
95
+ const componentTableName = tableNameForComponentKey(componentKey);
96
+ const whereClause = componentKey._tag === 'singleton' ? '' : `where id = '${componentKey.id}'`;
97
+ // TODO find a better solution for this
98
+ if (store.tableRefs[componentTableName] === undefined) {
99
+ const schemaHash = SqliteAst.hash(stateSchema.ast);
100
+ const res = store.inMemoryDB.select(sql `SELECT schemaHash FROM ${SCHEMA_META_TABLE} WHERE tableName = '${componentTableName}'`);
101
+ if (res.length === 0 || res[0].schemaHash !== schemaHash) {
102
+ migrateTable({ db: store._proxyDb, tableDef: stateSchema.ast, otelContext, schemaHash });
103
+ }
104
+ store.tableRefs[componentTableName] = store.graph.makeRef(null, {
105
+ equal: () => false,
106
+ label: componentTableName,
107
+ meta: { liveStoreRefType: 'table' },
108
+ });
109
+ }
110
+ // state$ = store
111
+ // .querySQL(() => sql`select * from ${componentTableName} ${whereClause} limit 1`, {
112
+ // queriedTables: [componentTableName],
113
+ // componentKey,
114
+ // label: `localState:query:${componentKeyLabel}`,
115
+ // otelContext,
116
+ // })
117
+ return (new LiveStoreSQLQuery({
118
+ label: `localState:query:${componentKeyLabel}`,
119
+ // otelContext,
120
+ // otelTracer: store.otel.tracer,
121
+ genQueryString: () => sql `select * from ${componentTableName} ${whereClause} limit 1`,
122
+ queriedTables: [componentTableName],
123
+ })
124
+ // TODO consider to instead of just returning the default value, to write the default component state to the DB
125
+ .pipe((results) => results.length === 1 ? Schema.parseSync(componentStateEffectSchema)(results[0]) : defaultComponentState));
126
+ }
140
127
  }, [
141
- store,
142
- otelContext,
143
- stateSchema,
144
- generateQueries,
145
128
  componentKey,
146
129
  componentKeyLabel,
147
130
  componentStateEffectSchema,
148
131
  defaultComponentState,
132
+ otelContext,
133
+ stateSchema,
134
+ store._proxyDb,
135
+ store.graph,
136
+ store.inMemoryDB,
137
+ store.tableRefs,
149
138
  ]);
139
+ const queries = React.useMemo(() => generateQueries({ state$, registerSubscription: () => { }, isTemporaryQuery: false }), [generateQueries, state$]);
140
+ // Step 1:
141
+ // Synchronously create state and queries for initial render pass.
142
+ // We do this in a temporary query context which cleans up after itself, making it idempotent
143
+ // TODO get rid of the temporary query workaround
144
+ const { initialComponentState, initialQueryResults } = React.useMemo(() => {
145
+ // return store.otel.tracer.startActiveSpan('LiveStore:useLiveStoreComponent:initial', {}, otelContext, (span) => {
146
+ // const otelContext = otel.trace.setSpan(otel.context.active(), span)
147
+ // NOTE `inTempQueryContext` automatically destroys the queries once the callback is done
148
+ // return store.inTempQueryContext(() => {
149
+ // try {
150
+ // store.graph.refresh({}, otelContext)
151
+ const initialComponentState = state$.run(otelContext);
152
+ // const queries = generateQueries({
153
+ // state$: state$,
154
+ // otelContext,
155
+ // registerSubscription: () => {},
156
+ // isTemporaryQuery: true,
157
+ // })
158
+ for (const [name, query] of Object.entries(queries)) {
159
+ query.label = name;
160
+ }
161
+ // store.graph.refresh({}, otelContext)
162
+ // TODO improve typing
163
+ const initialQueryResults = mapValues(queries, (query) => query.run(otelContext));
164
+ return { initialComponentState, initialQueryResults };
165
+ // } finally {
166
+ // span.end()
167
+ // }
168
+ // })
169
+ // })
170
+ }, [otelContext, queries, state$]);
150
171
  // Now that we've computed the initial state synchronously,
151
172
  // we can set up our useState calls w/ a default value populated...
152
173
  const [componentStateRef, setComponentState_] = useStateRefWithReactiveInput(initialComponentState);
@@ -185,41 +206,60 @@ export const useLiveStoreComponent = ({ stateSchema: stateSchema_, queries = ()
185
206
  return store.otel.tracer.startActiveSpan('LiveStore:useLiveStoreComponent:long-running', { attributes: {} }, otelContext, (span) => {
186
207
  const otelContext = otel.trace.setSpan(otel.context.active(), span);
187
208
  const unsubs = [];
188
- // create state query
189
- let state$;
190
- if (stateSchema === undefined) {
191
- // TODO remove this query
192
- state$ = store.queryJS(() => ({}), {
193
- componentKey,
194
- otelContext,
195
- label: 'empty-component-state',
196
- });
197
- }
198
- else {
199
- const componentTableName = tableNameForComponentKey(componentKey);
209
+ if (stateSchema !== undefined) {
200
210
  insertRowForComponentInstance({ store, componentKey, stateSchema });
201
- const whereClause = componentKey._tag === 'singleton' ? '' : `where id = '${componentKey.id}'`;
202
- state$ = store
203
- .querySQL(() => sql `select * from ${componentTableName} ${whereClause} limit 1`, {
204
- queriedTables: [componentTableName],
205
- componentKey,
206
- label: `localState:query:${componentKeyLabel}`,
207
- otelContext,
208
- })
209
- // TODO consider to instead of just returning the default value, to write the default component state to the DB
210
- .pipe((results) => results.length === 1 ? Schema.parseSync(componentStateEffectSchema)(results[0]) : defaultComponentState);
211
211
  }
212
+ // // create state query
213
+ // let state$: LiveStoreJSQuery<TComponentState>
214
+ // if (stateSchema === undefined) {
215
+ // // TODO remove this query
216
+ // // state$ = store.queryJS(() => ({}) as TComponentState, {
217
+ // // componentKey,
218
+ // // otelContext,
219
+ // // label: 'empty-component-state',
220
+ // // })
221
+ // state$ = new LiveStoreJSQuery({
222
+ // fn: () => ({}) as TComponentState,
223
+ // label: 'empty-component-state',
224
+ // otelContext,
225
+ // otelTracer: store.otel.tracer,
226
+ // })
227
+ // } else {
228
+ // const componentTableName = tableNameForComponentKey(componentKey)
229
+ // insertRowForComponentInstance({ store, componentKey, stateSchema })
230
+ // const whereClause = componentKey._tag === 'singleton' ? '' : `where id = '${componentKey.id}'`
231
+ // // state$ = store
232
+ // // .querySQL<TComponentState>(() => sql`select * from ${componentTableName} ${whereClause} limit 1`, {
233
+ // // queriedTables: [componentTableName],
234
+ // // componentKey,
235
+ // // label: `localState:query:${componentKeyLabel}`,
236
+ // // otelContext,
237
+ // // })
238
+ // state$ = new LiveStoreSQLQuery({
239
+ // label: `localState:query:${componentKeyLabel}`,
240
+ // otelContext,
241
+ // otelTracer: store.otel.tracer,
242
+ // payload: {
243
+ // genQueryString: () => sql`select * from ${componentTableName} ${whereClause} limit 1`,
244
+ // queriedTables: [componentTableName],
245
+ // },
246
+ // })
247
+ // // TODO consider to instead of just returning the default value, to write the default component state to the DB
248
+ // .pipe<TComponentState>((results) =>
249
+ // results.length === 1 ? Schema.parseSync(componentStateEffectSchema)(results[0]!) : defaultComponentState,
250
+ // )
251
+ // }
212
252
  unsubs.push(store.subscribe(state$, (results) => {
213
253
  if (isEqual(results, componentStateRef.current) === false) {
214
254
  setComponentState_(results);
215
255
  }
216
256
  }, undefined, { label: `useLiveStoreComponent:localState:subscribe:${state$.label}` }));
257
+ // TODO re-enable
217
258
  const registerSubscription = (query$, callback, onUnsubscribe) => {
218
259
  unsubs.push(store.subscribe(query$, (results) => {
219
260
  callback(results);
220
261
  }, onUnsubscribe, { label: `useLiveStoreComponent:query:manual-subscribe:${query$.label}` }));
221
262
  };
222
- const queries = generateQueries({ state$, otelContext, registerSubscription, isTemporaryQuery: false });
223
263
  for (const [key, query] of Object.entries(queries)) {
224
264
  // Use the field name given to this query in the useQueries hook as its label
225
265
  query.label = key;
@@ -239,7 +279,8 @@ export const useLiveStoreComponent = ({ stateSchema: stateSchema_, queries = ()
239
279
  });
240
280
  // NOTE excluding `setComponentState_` and `setQueryResults_` from the deps array as it seems to cause an infinite loop
241
281
  // This should probably be improved
242
- // eslint-disable-next-line react-hooks/exhaustive-deps
282
+ // TODO is this still true?
283
+ // // eslint-disable-next-line react-hooks/exhaustive-deps
243
284
  }, [
244
285
  store,
245
286
  componentKey,
@@ -248,8 +289,11 @@ export const useLiveStoreComponent = ({ stateSchema: stateSchema_, queries = ()
248
289
  generateQueries,
249
290
  otelContext,
250
291
  componentStateRef,
251
- // setComponentState_,
252
- // setQueryResults_,
292
+ state$,
293
+ queries,
294
+ queryResultsRef,
295
+ setComponentState_,
296
+ setQueryResults_,
253
297
  ]);
254
298
  // Very important: remove any queries / other resources associated w/ this component
255
299
  React.useEffect(() => () => store.unmountComponent(componentKey), [store, componentKey]);
@@ -1 +1 @@
1
- {"version":3,"file":"useLiveStoreComponent.js","sourceRoot":"","sources":["../../src/react/useLiveStoreComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useLiveStoreComponent.js","sourceRoot":"","sources":["../../src/react/useLiveStoreComponent.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { LiveStoreQuery, QueryResult, Store } from '../store.js';
2
- export declare const useQuery: <Q extends LiveStoreQuery>(queryDef: (store: Store) => Q) => QueryResult<Q>;
1
+ import type { ILiveStoreQuery } from '../reactiveQueries/base-class.js';
2
+ export declare const useQuery: <TResult>(query: ILiveStoreQuery<TResult>) => TResult;
3
3
  //# sourceMappingURL=useQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../src/react/useQuery.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAMrE,eAAO,MAAM,QAAQ,+CAAgD,KAAK,yBA6CzE,CAAA"}
1
+ {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../src/react/useQuery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAKvE,eAAO,MAAM,QAAQ,uDAiDpB,CAAA"}
@@ -1,38 +1,42 @@
1
+ import { isEqual } from 'lodash-es';
1
2
  import React from 'react';
2
- import { labelForKey } from '../componentKey.js';
3
3
  import { useStore } from './LiveStoreContext.js';
4
- // TODO get rid of the query cache in favour of the new side-effect-free query definition approach https://www.notion.so/schickling/New-query-definition-approach-1097a78ef0e9495bac25f90417374756?pvs=4
5
- const queryCache = new Map();
6
- export const useQuery = (queryDef) => {
4
+ import { extractStackInfoFromStackTrace, originalStackLimit } from './utils/extractStackInfoFromStackTrace.js';
5
+ import { useStateRefWithReactiveInput } from './utils/useStateRefWithReactiveInput.js';
6
+ export const useQuery = (query) => {
7
7
  const { store } = useStore();
8
- const query = React.useMemo(() => {
9
- if (queryCache.has(queryDef))
10
- return queryCache.get(queryDef);
11
- const query = queryDef(store);
12
- queryCache.set(queryDef, query);
13
- return query;
14
- }, [store, queryDef]);
8
+ // TODO proper otel context
9
+ const initialResult = React.useMemo(() => query.run(), [query]);
15
10
  // We know the query has a result by the time we use it; so we can synchronously populate a default state
16
- const [value, setValue] = React.useState(query.results$.result);
11
+ const [valueRef, setValue] = useStateRefWithReactiveInput(initialResult);
12
+ const subscriptionInfo = React.useMemo(() => {
13
+ Error.stackTraceLimit = 10;
14
+ // eslint-disable-next-line unicorn/error-message
15
+ const stack = new Error().stack;
16
+ Error.stackTraceLimit = originalStackLimit;
17
+ return { stack: extractStackInfoFromStackTrace(stack) };
18
+ }, []);
17
19
  // Subscribe to future updates for this query
18
20
  React.useEffect(() => {
19
- return store.otel.tracer.startActiveSpan(`LiveStore:useQuery:${labelForKey(query.componentKey)}:${query.label}`, { attributes: { label: query.label } }, query.otelContext, (span) => {
20
- const cancel = store.subscribe(query, (v) => {
21
+ return store.otel.tracer.startActiveSpan(`LiveStore:useQuery:${query.label}`,
22
+ // `LiveStore:useQuery:${labelForKey(query.componentKey)}:${query.label}`,
23
+ { attributes: { label: query.label } }, store.otel.queriesSpanContext, (span) => {
24
+ query.activeSubscriptions.add(subscriptionInfo);
25
+ const unsub = store.subscribe(query, (newValue) => {
21
26
  // NOTE: we return a reference to the result object within LiveStore;
22
27
  // this implies that app code must not mutate the results, or else
23
28
  // there may be weird reactivity bugs.
24
- return setValue(v);
29
+ if (isEqual(newValue, valueRef.current) === false) {
30
+ setValue(newValue);
31
+ }
25
32
  }, undefined, { label: query.label });
26
33
  return () => {
27
- // // NOTE destroying the whole query will also unsubscribe it
28
- // query.destroy()
29
- // TODO for now we'll still `cancel` manually, but we should remove this once we have some kind of
30
- // ARC-based system
31
- cancel();
34
+ query.activeSubscriptions.delete(subscriptionInfo);
35
+ unsub();
32
36
  span.end();
33
37
  };
34
38
  });
35
- }, [query, store]);
36
- return value;
39
+ }, [subscriptionInfo, query, setValue, store, valueRef]);
40
+ return valueRef.current;
37
41
  };
38
42
  //# sourceMappingURL=useQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.js","sourceRoot":"","sources":["../../src/react/useQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,wMAAwM;AACxM,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmC,CAAA;AAE7D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAA2B,QAA6B,EAAkB,EAAE;IAClG,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC/B,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAM,CAAA;QAElE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC7B,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAC/B,OAAO,KAAK,CAAA;IACd,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;IAErB,yGAAyG;IACzG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAiB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAE/E,6CAA6C;IAC7C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CACtC,sBAAsB,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,EACtE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,EACtC,KAAK,CAAC,WAAW,EACjB,CAAC,IAAI,EAAE,EAAE;YACP,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAC5B,KAAK,EACL,CAAC,CAAC,EAAE,EAAE;gBACJ,qEAAqE;gBACrE,kEAAkE;gBAClE,sCAAsC;gBACtC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAA;YACpB,CAAC,EACD,SAAS,EACT,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CACvB,CAAA;YACD,OAAO,GAAG,EAAE;gBACV,8DAA8D;gBAC9D,kBAAkB;gBAElB,kGAAkG;gBAClG,mBAAmB;gBACnB,MAAM,EAAE,CAAA;gBACR,IAAI,CAAC,GAAG,EAAE,CAAA;YACZ,CAAC,CAAA;QACH,CAAC,CACF,CAAA;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IAElB,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
1
+ {"version":3,"file":"useQuery.js","sourceRoot":"","sources":["../../src/react/useQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAA;AAC9G,OAAO,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAA;AAEtF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAU,KAA+B,EAAW,EAAE;IAC5E,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;IAE5B,2BAA2B;IAC3B,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAE/D,yGAAyG;IACzG,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,4BAA4B,CAAU,aAAa,CAAC,CAAA;IAEjF,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC1C,KAAK,CAAC,eAAe,GAAG,EAAE,CAAA;QAC1B,iDAAiD;QACjD,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAM,CAAA;QAChC,KAAK,CAAC,eAAe,GAAG,kBAAkB,CAAA;QAC1C,OAAO,EAAE,KAAK,EAAE,8BAA8B,CAAC,KAAK,CAAC,EAAE,CAAA;IACzD,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,6CAA6C;IAC7C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CACtC,sBAAsB,KAAK,CAAC,KAAK,EAAE;QACnC,0EAA0E;QAC1E,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,EACtC,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAC7B,CAAC,IAAI,EAAE,EAAE;YACP,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;YAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAC3B,KAAK,EACL,CAAC,QAAQ,EAAE,EAAE;gBACX,qEAAqE;gBACrE,kEAAkE;gBAClE,sCAAsC;gBACtC,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE;oBACjD,QAAQ,CAAC,QAAQ,CAAC,CAAA;iBACnB;YACH,CAAC,EACD,SAAS,EACT,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CACvB,CAAA;YACD,OAAO,GAAG,EAAE;gBACV,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;gBAClD,KAAK,EAAE,CAAA;gBACP,IAAI,CAAC,GAAG,EAAE,CAAA;YACZ,CAAC,CAAA;QACH,CAAC,CACF,CAAA;IACH,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;IAExD,OAAO,QAAQ,CAAC,OAAO,CAAA;AACzB,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { ILiveStoreQuery } from '../reactiveQueries/base-class.js';
2
+ /**
3
+ * Creates a query, subscribes and destroys it when the component unmounts.
4
+ *
5
+ * Make sure `makeQuery` is a memoized function.
6
+ */
7
+ export declare const useTemporaryQuery: <TResult>(makeQuery: () => ILiveStoreQuery<TResult>) => TResult;
8
+ //# sourceMappingURL=useTemporaryQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTemporaryQuery.d.ts","sourceRoot":"","sources":["../../src/react/useTemporaryQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAGvE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,iEAU7B,CAAA"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { useQuery } from './useQuery.js';
3
+ /**
4
+ * Creates a query, subscribes and destroys it when the component unmounts.
5
+ *
6
+ * Make sure `makeQuery` is a memoized function.
7
+ */
8
+ export const useTemporaryQuery = (makeQuery) => {
9
+ const query = React.useMemo(() => makeQuery(), [makeQuery]);
10
+ React.useEffect(() => {
11
+ return () => {
12
+ query.destroy();
13
+ };
14
+ }, [query]);
15
+ return useQuery(query);
16
+ };
17
+ //# sourceMappingURL=useTemporaryQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTemporaryQuery.js","sourceRoot":"","sources":["../../src/react/useTemporaryQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAU,SAAyC,EAAW,EAAE;IAC/F,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAE3D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,OAAO,EAAE,CAAA;QACjB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const originalStackLimit: number;
2
+ export declare const extractNamesFromStackTrace: (stackTrace: string) => string[];
3
+ //# sourceMappingURL=extractNamesFromStackTrace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractNamesFromStackTrace.d.ts","sourceRoot":"","sources":["../../../src/react/utils/extractNamesFromStackTrace.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,QAAwB,CAAA;AAqBvD,eAAO,MAAM,0BAA0B,eAAgB,MAAM,KAAG,MAAM,EAoBrE,CAAA"}
@@ -0,0 +1,40 @@
1
+ export const originalStackLimit = Error.stackTraceLimit;
2
+ /*
3
+ Example stack trace:
4
+
5
+ Error
6
+ at https://localhost:8081/@fs/Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/livestore/dist/react/useQuery.js?t=1699550216884:18:23
7
+ at mountMemo (https://localhost:8081/node_modules/.vite-web/deps/chunk-M23HUTQV.js?v=3eb66ed6:12817:27)
8
+ at Object.useMemo (https://localhost:8081/node_modules/.vite-web/deps/chunk-M23HUTQV.js?v=3eb66ed6:13141:24)
9
+ at Object.useMemo (https://localhost:8081/node_modules/.vite-web/deps/chunk-4WADDZ2G.js?v=3eb66ed6:1094:29)
10
+ at useQuery (https://localhost:8081/@fs/Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/livestore/dist/react/useQuery.js?t=1699550216884:13:33)
11
+ at useAppState (https://localhost:8081/src/db/AppState.ts?t=1699550216884:17:34)
12
+ at useRoute (https://localhost:8081/src/db/AppState.ts?t=1699550216884:74:22)
13
+ at RouteLink (https://localhost:8081/src/components/Link.tsx?t=1699550216884:36:7)
14
+ at renderWithHooks (https://localhost:8081/node_modules/.vite-web/deps/chunk-M23HUTQV.js?v=3eb66ed6:12171:26)
15
+ at mountIndeterminateComponent (https://localhost:8081/node_modules/.vite-web/deps/chunk-M23HUTQV.js?v=3eb66ed6:14921:21)
16
+
17
+ Approach:
18
+ - Start filtering at `at useQuery` (including)
19
+ - Stop filtering at `at renderWithHooks` (excluding)
20
+ */
21
+ export const extractNamesFromStackTrace = (stackTrace) => {
22
+ const namePattern = / at (\w+)/g;
23
+ let match;
24
+ const names = [];
25
+ let hasReachedStart = false;
26
+ while ((match = namePattern.exec(stackTrace)) !== null) {
27
+ if (match[1]?.startsWith('use')) {
28
+ hasReachedStart = true;
29
+ // match[1] contains the captured group, which is the name we want to extract
30
+ names.unshift(match[1]);
31
+ }
32
+ else if (hasReachedStart) {
33
+ // We've reached the end of the `use*` functions, so we're adding the component name and stop
34
+ names.unshift(match[1]);
35
+ break;
36
+ }
37
+ }
38
+ return names;
39
+ };
40
+ //# sourceMappingURL=extractNamesFromStackTrace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractNamesFromStackTrace.js","sourceRoot":"","sources":["../../../src/react/utils/extractNamesFromStackTrace.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,eAAe,CAAA;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,UAAkB,EAAY,EAAE;IACzE,MAAM,WAAW,GAAG,YAAY,CAAA;IAChC,IAAI,KAA6B,CAAA;IACjC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,eAAe,GAAG,KAAK,CAAA;IAE3B,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE;QACtD,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE;YAC/B,eAAe,GAAG,IAAI,CAAA;YAEtB,6EAA6E;YAC7E,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;SACxB;aAAM,IAAI,eAAe,EAAE;YAC1B,6FAA6F;YAC7F,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAA;YACxB,MAAK;SACN;KACF;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ export declare const originalStackLimit: number;
2
+ export type StackInfo = {
3
+ name: string;
4
+ filePath: string;
5
+ };
6
+ export declare const extractStackInfoFromStackTrace: (stackTrace: string) => StackInfo[];
7
+ //# sourceMappingURL=extractStackInfoFromStackTrace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractStackInfoFromStackTrace.d.ts","sourceRoot":"","sources":["../../../src/react/utils/extractStackInfoFromStackTrace.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,QAAwB,CAAA;AAEvD,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAqBD,eAAO,MAAM,8BAA8B,eAAgB,MAAM,KAAG,SAAS,EAoB5E,CAAA"}
@@ -0,0 +1,40 @@
1
+ export const originalStackLimit = Error.stackTraceLimit;
2
+ /*
3
+ Example stack trace:
4
+
5
+ Error
6
+ at https://localhost:8081/@fs/Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/livestore/dist/react/useQuery.js?t=1699550216884:18:23
7
+ at mountMemo (https://localhost:8081/node_modules/.vite-web/deps/chunk-M23HUTQV.js?v=3eb66ed6:12817:27)
8
+ at Object.useMemo (https://localhost:8081/node_modules/.vite-web/deps/chunk-M23HUTQV.js?v=3eb66ed6:13141:24)
9
+ at Object.useMemo (https://localhost:8081/node_modules/.vite-web/deps/chunk-4WADDZ2G.js?v=3eb66ed6:1094:29)
10
+ at useQuery (https://localhost:8081/@fs/Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/livestore/dist/react/useQuery.js?t=1699550216884:13:33)
11
+ at useAppState (https://localhost:8081/src/db/AppState.ts?t=1699550216884:17:34)
12
+ at useRoute (https://localhost:8081/src/db/AppState.ts?t=1699550216884:74:22)
13
+ at RouteLink (https://localhost:8081/src/components/Link.tsx?t=1699550216884:36:7)
14
+ at renderWithHooks (https://localhost:8081/node_modules/.vite-web/deps/chunk-M23HUTQV.js?v=3eb66ed6:12171:26)
15
+ at mountIndeterminateComponent (https://localhost:8081/node_modules/.vite-web/deps/chunk-M23HUTQV.js?v=3eb66ed6:14921:21)
16
+
17
+ Approach:
18
+ - Start filtering at `at useQuery` (including)
19
+ - Stop filtering at `at renderWithHooks` (excluding)
20
+ */
21
+ export const extractStackInfoFromStackTrace = (stackTrace) => {
22
+ const namePattern = /at (\S+) \((.+)\)/g;
23
+ let match;
24
+ const stackInfoArr = [];
25
+ let hasReachedStart = false;
26
+ while ((match = namePattern.exec(stackTrace)) !== null) {
27
+ const [, name, filePath] = match;
28
+ if (name.startsWith('use')) {
29
+ hasReachedStart = true;
30
+ stackInfoArr.unshift({ name, filePath });
31
+ }
32
+ else if (hasReachedStart) {
33
+ // We've reached the end of the `use*` functions, so we're adding the component name and stop
34
+ stackInfoArr.unshift({ name, filePath });
35
+ break;
36
+ }
37
+ }
38
+ return stackInfoArr;
39
+ };
40
+ //# sourceMappingURL=extractStackInfoFromStackTrace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractStackInfoFromStackTrace.js","sourceRoot":"","sources":["../../../src/react/utils/extractStackInfoFromStackTrace.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,eAAe,CAAA;AAOvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,UAAkB,EAAe,EAAE;IAChF,MAAM,WAAW,GAAG,oBAAoB,CAAA;IACxC,IAAI,KAA6B,CAAA;IACjC,MAAM,YAAY,GAAgB,EAAE,CAAA;IACpC,IAAI,eAAe,GAAG,KAAK,CAAA;IAE3B,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE;QACtD,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,KAAwC,CAAA;QACnE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC1B,eAAe,GAAG,IAAI,CAAA;YAEtB,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;SACzC;aAAM,IAAI,eAAe,EAAE;YAC1B,6FAA6F;YAC7F,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YACxC,MAAK;SACN;KACF;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}