@effect-app/vue 4.0.0-beta.287 → 4.0.0-beta.288

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/query.js CHANGED
@@ -13,7 +13,7 @@ import * as Stream from "effect/Stream";
13
13
  import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
14
14
  import * as Atom from "effect/unstable/reactivity/Atom";
15
15
  import { computed, effectScope, onBeforeUnmount, onMounted, onScopeDispose, ref, toValue } from "vue";
16
- import { awaitAtomResult, buildQueryFamily, buildStreamQueryFamily, disabledQueryAtom, isStaleResult, staleTimeMsOf, withQueryOptions } from "./atomQuery.js";
16
+ import { awaitAtomResult, buildQueryFamily, buildStreamQueryFamily, disabledQueryAtom, isStaleResult, refreshAtomWithCurrentSpan, staleTimeMsOf, withQueryOptions } from "./atomQuery.js";
17
17
  const useScopedSuspenseSetup = (setup) => {
18
18
  const scope = effectScope();
19
19
  const controller = new AbortController();
@@ -109,7 +109,7 @@ export const useAtomQuery = (atom) => {
109
109
  const refresh = () => registry.refresh(atomRef.value);
110
110
  const awaitResult = () => awaitAtomResult(registry, atomRef.value);
111
111
  const refetch = () => Effect.gen(function* () {
112
- refresh();
112
+ yield* refreshAtomWithCurrentSpan(registry, atomRef.value);
113
113
  return yield* awaitResult();
114
114
  });
115
115
  const data = computed(() => Option.getOrUndefined(AsyncResult.value(result.value)));
@@ -250,7 +250,7 @@ const makeQueryView = (getAtomRt, q, arg, options) => {
250
250
  ? awaitAtomResult(registry, atomRef.value).pipe(Effect.map(select))
251
251
  : awaitAtomResult(registry, atomRef.value);
252
252
  const refetch = () => Effect.gen(function* () {
253
- refresh();
253
+ yield* refreshAtomWithCurrentSpan(registry, atomRef.value);
254
254
  return yield* awaitResult();
255
255
  });
256
256
  const staleMs = staleTimeMsOf(normalizeQueryOptions(options));
@@ -372,4 +372,4 @@ export const useUpdateQuery = () => {
372
372
  const f = (query, input, updater) => activeQueryCacheUpdater.update(registry, query, input, updater);
373
373
  return f;
374
374
  };
375
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCx3REFBd0Q7QUFDeEQsNERBQTREO0FBQzVELCtEQUErRDtBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQy9ELE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLG1CQUFtQixDQUFBO0FBSTFELE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUUzQyxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQUNuQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssV0FBVyxNQUFNLHdDQUF3QyxDQUFBO0FBQ3JFLE9BQU8sS0FBSyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBb0IsV0FBVyxFQUF5QixlQUFlLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFvQixNQUFNLEtBQUssQ0FBQTtBQUNoSyxPQUFPLEVBQWlELGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUF1QjVNLE1BQU0sc0JBQXNCLEdBQUcsQ0FBSSxLQUFjLEVBQUUsRUFBRTtJQUNuRCxNQUFNLEtBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQTtJQUMzQixNQUFNLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFBO0lBQ3hDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMs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
375
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCx3REFBd0Q7QUFDeEQsNERBQTREO0FBQzVELCtEQUErRDtBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQy9ELE9BQU8sS0FBSyxLQUFLLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLG1CQUFtQixDQUFBO0FBSTFELE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUUzQyxPQUFPLEtBQUssSUFBSSxNQUFNLGFBQWEsQ0FBQTtBQUNuQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssV0FBVyxNQUFNLHdDQUF3QyxDQUFBO0FBQ3JFLE9BQU8sS0FBSyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBb0IsV0FBVyxFQUF5QixlQUFlLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFvQixNQUFNLEtBQUssQ0FBQTtBQUNoSyxPQUFPLEVBQWlELGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsMEJBQTBCLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUF1QnhPLE1BQU0sc0JBQXNCLEdBQUcsQ0FBSSxLQUFjLEVBQUUsRUFBRTtJQUNuRCxNQUFNLEtBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQTtJQUMzQixNQUFNLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFBO0lBQ3hDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FB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QUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzFCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ2hELElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ3JHLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNoQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUE7SUFDdEIsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ3RILElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNoQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUE7SUFDdEIsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUVsRCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQzlELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUMxQyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUMsRUFBRSxFQUFTLENBQUMsQ0FBQTtJQUNiLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQTtBQUMxRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtJQUNqQyxNQUFNLFFBQVEsR0FBRyxjQUFjLEVBQUUsQ0FBQTtJQUVqQyxNQUFNLENBQUMsR0FNSCxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDOUYsT0FBTyxDQUFDLENBQUE7QUFDVixDQUFDLENBQUEifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/vue",
3
- "version": "4.0.0-beta.287",
3
+ "version": "4.0.0-beta.288",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "homepage": "https://github.com/effect-ts-app/libs/tree/main/packages/vue",
@@ -10,7 +10,7 @@
10
10
  "@vueuse/core": "^14.3.0",
11
11
  "change-case": "^5.4.4",
12
12
  "query-string": "^9.4.0",
13
- "effect-app": "4.0.0-beta.287"
13
+ "effect-app": "4.0.0-beta.288"
14
14
  },
15
15
  "peerDependencies": {
16
16
  "@effect/atom-vue": "^4.0.0-beta.90",
package/src/atomQuery.ts CHANGED
@@ -27,6 +27,7 @@ import * as Hash from "effect/Hash"
27
27
  import type * as Layer from "effect/Layer"
28
28
  import * as Ref from "effect/Ref"
29
29
  import * as Stream from "effect/Stream"
30
+ import type * as Tracer from "effect/Tracer"
30
31
  import { isHttpClientError } from "effect/unstable/http/HttpClientError"
31
32
  import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"
32
33
  import * as Atom from "effect/unstable/reactivity/Atom"
@@ -126,8 +127,9 @@ const atomsForKeys = (keys: ReadonlyArray<unknown>): ReadonlyArray<Atom.Atom<Asy
126
127
  */
127
128
  export const invalidateAndAwait = (keys: ReadonlyArray<unknown>): Effect.Effect<void, never, Reactivity.Reactivity> =>
128
129
  Effect.gen(function*() {
129
- yield* Reactivity.invalidate(keys) // invalidates everything but only refreshes what's mounted
130
130
  const atoms = atomsForKeys(keys)
131
+ yield* Effect.forEach(atoms, captureAtomQueryParentSpan, { discard: true, concurrency: "inherit" })
132
+ yield* Reactivity.invalidate(keys) // invalidates everything but only refreshes what's mounted
131
133
  // for (const a of atoms) defaultRegistry.refresh(a) // refreshes everything even when not mounted
132
134
  if (atoms.length === 0) return
133
135
  yield* Effect.forEach(atoms, (a) => awaitAtomResult(defaultRegistry, a).pipe(Effect.exit))
@@ -191,8 +193,8 @@ export interface AtomClientRuntime {
191
193
  * Shares the ManagedRuntime's `memoMap` so layers are not built twice, and so
192
194
  * query-registration and mutation-invalidation resolve the SAME `Reactivity`.
193
195
  */
194
- export const makeAtomClientRuntime = (
195
- getContext: () => Layer.Layer<any, never, never>,
196
+ export const makeAtomClientRuntime = <R>(
197
+ getContext: () => Layer.Layer<R, never, never>,
196
198
  memoMap: Layer.MemoMap
197
199
  ): AtomClientRuntime => {
198
200
  const factory = Atom.context({ memoMap })
@@ -233,6 +235,45 @@ export interface AtomQueryMetadata {
233
235
  }
234
236
 
235
237
  const atomQueryMetadata = new WeakMap<Atom.Atom<AsyncResult.AsyncResult<any, any>>, AtomQueryMetadata>()
238
+ const atomQueryParentSpans = new WeakMap<Atom.Atom<AsyncResult.AsyncResult<any, any>>, Tracer.AnySpan>()
239
+
240
+ const atomSpanTarget = <A, E>(atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>) => {
241
+ let target = atom
242
+ while (target.initialValueTarget !== undefined) {
243
+ target = target.initialValueTarget
244
+ }
245
+ return target
246
+ }
247
+
248
+ const takeAtomQueryParentSpan = <A, E>(atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>) => {
249
+ const target = atomSpanTarget(atom)
250
+ const span = atomQueryParentSpans.get(target)
251
+ if (span !== undefined) atomQueryParentSpans.delete(target)
252
+ return span
253
+ }
254
+
255
+ const setAtomQueryParentSpan = <A, E>(
256
+ atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>,
257
+ span: Tracer.AnySpan
258
+ ) => {
259
+ atomQueryParentSpans.set(atomSpanTarget(atom), span)
260
+ }
261
+
262
+ export const captureAtomQueryParentSpan = <A, E>(
263
+ atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>
264
+ ): Effect.Effect<void> =>
265
+ Effect.currentParentSpan.pipe(
266
+ Effect.tap((span) => Effect.sync(() => setAtomQueryParentSpan(atom, span))),
267
+ Effect.ignore
268
+ )
269
+
270
+ export const refreshAtomWithCurrentSpan = <A, E>(
271
+ registry: AtomRegistry.AtomRegistry,
272
+ atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>
273
+ ): Effect.Effect<void> =>
274
+ captureAtomQueryParentSpan(atom).pipe(
275
+ Effect.andThen(Effect.sync(() => registry.refresh(atom)))
276
+ )
236
277
 
237
278
  const setAtomQueryMetadata = <A, E>(
238
279
  atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>,
@@ -347,24 +388,30 @@ export const buildQueryFamily = <I, A, E>(
347
388
  // The last recorded reads are retained on the (memoized) family atom so `trackReadDependencies`
348
389
  // can re-assert them on a cache-hit remount that never re-runs the handler.
349
390
  let lastReads: DataDependencies.DataDependencies = DataDependencies.empty()
350
- const recordReads = Effect.gen(function*() {
351
- const readsRef = yield* Ref.make(DataDependencies.empty())
352
- const writesRef = yield* Ref.make(DataDependencies.empty())
353
- const recorder = DataDependencies.makeDataDependencyRecorder(readsRef, writesRef)
354
- const result = yield* self
355
- .handler(input)
356
- .pipe(Effect.provideService(DataDependencies.DataDependencyRecorder, recorder))
357
- lastReads = yield* Ref.get(readsRef)
358
- setQueryReadDependencies(fullKey, lastReads)
359
- return result
360
- })
361
- let atom: Atom.Atom<AsyncResult.AsyncResult<A, E>> = rt.runtime.atom(
362
- recordReads
363
- .pipe(
391
+ let atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>
392
+ atom = rt.runtime.atom(
393
+ Effect.suspend(() => {
394
+ const recordReads = Effect.gen(function*() {
395
+ const readsRef = yield* Ref.make(DataDependencies.empty())
396
+ const writesRef = yield* Ref.make(DataDependencies.empty())
397
+ const recorder = DataDependencies.makeDataDependencyRecorder(readsRef, writesRef)
398
+ const result = yield* self
399
+ .handler(input)
400
+ .pipe(Effect.provideService(DataDependencies.DataDependencyRecorder, recorder))
401
+ lastReads = yield* Ref.get(readsRef)
402
+ setQueryReadDependencies(fullKey, lastReads)
403
+ return result
404
+ })
405
+ const effect = recordReads.pipe(
364
406
  Effect.retry({ times: 5, while: isRetryable }),
365
407
  Effect.tapCauseIf(Cause.hasDies, (cause) => reportRuntimeError(cause)),
366
408
  Effect.withSpan(`query ${self.id}`, {}, { captureStackTrace: false })
367
409
  )
410
+ const parentSpan = takeAtomQueryParentSpan(atom)
411
+ return parentSpan === undefined
412
+ ? effect
413
+ : effect.pipe(Effect.withParentSpan(parentSpan, { captureStackTrace: false }))
414
+ })
368
415
  )
369
416
  // Register under every prefix of the full key => hierarchical (prefix) invalidation. Two roles:
370
417
  // - withReactivity: `Reactivity.invalidate(key)` refreshes this atom (the actual refetch).
@@ -9,6 +9,7 @@ import * as Option from "effect-app/Option"
9
9
  import * as S from "effect-app/Schema"
10
10
  import * as Cause from "effect/Cause"
11
11
  import * as Ref from "effect/Ref"
12
+ import type * as Tracer from "effect/Tracer"
12
13
  import { isHttpClientError } from "effect/unstable/http/HttpClientError"
13
14
  import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"
14
15
  import * as Atom from "effect/unstable/reactivity/Atom"
@@ -100,11 +101,17 @@ export const makeTanstackQueryClient = () => new QueryClient()
100
101
 
101
102
  export const makeTanstackQueryInvalidator = (queryClient: QueryClient): QueryInvalidator => ({
102
103
  invalidateAndAwait: (keys) =>
103
- Effect.forEach(
104
- keys,
105
- (queryKey) => Effect.promise(() => queryClient.invalidateQueries({ queryKey })),
106
- { discard: true, concurrency: "inherit" }
107
- )
104
+ Effect.gen(function*() {
105
+ const span = yield* Effect.currentParentSpan.pipe(Effect.orElseSucceed(() => undefined))
106
+ yield* Effect.forEach(
107
+ keys,
108
+ (queryKey) => {
109
+ const options = { updateMeta: { span } }
110
+ return Effect.promise(() => queryClient.invalidateQueries({ queryKey }, options))
111
+ },
112
+ { discard: true, concurrency: "inherit" }
113
+ )
114
+ })
108
115
  })
109
116
 
110
117
  const fullQueryKey = (
@@ -167,7 +174,12 @@ export const makeTanstackQuery = <R>(
167
174
  const input = resolveInput(arg, options?.mode)
168
175
  return fullQueryKey(q, queryKey, input)
169
176
  }),
170
- queryFn: ({ signal }: { readonly signal: AbortSignal }) =>
177
+ queryFn: (
178
+ { meta, signal }: {
179
+ readonly meta?: { readonly span?: Tracer.AnySpan | undefined } | undefined
180
+ readonly signal: AbortSignal
181
+ }
182
+ ) =>
171
183
  runPromise(
172
184
  Effect.gen(function*() {
173
185
  const input = resolveInput(arg, options?.mode)!
@@ -182,7 +194,10 @@ export const makeTanstackQuery = <R>(
182
194
  .pipe(
183
195
  Effect.provideService(DataDependencies.DataDependencyRecorder, recorder),
184
196
  Effect.tapCauseIf(Cause.hasDies, (cause) => reportRuntimeError(cause)),
185
- Effect.withSpan(`query ${q.id}`, {}, { captureStackTrace: false })
197
+ Effect.withSpan(`query ${q.id}`, {}, { captureStackTrace: false }),
198
+ meta?.span === undefined
199
+ ? (effect) => effect
200
+ : Effect.withParentSpan(meta.span, { captureStackTrace: false })
186
201
  )
187
202
  setQueryReadDependencies(fullQueryKey(q, queryKey, input), yield* Ref.get(readsRef))
188
203
  return result
@@ -229,21 +244,25 @@ export const makeTanstackQuery = <R>(
229
244
  )
230
245
 
231
246
  const refetch = (): Effect.Effect<TData, E> =>
232
- Effect
233
- .tryPromise({
234
- try: async () => {
235
- const queryResult = await tanstack.refetch({ throwOnError: true })
236
- const data = queryResult.data
237
- if (data === undefined) {
238
- throw new Error("TanStack query refetched without data")
239
- }
240
- return data
241
- },
242
- catch: (error) => error
243
- })
244
- .pipe(
245
- Effect.catch((error) => recoverCauseException<TData, E>(error))
246
- )
247
+ Effect.gen(function*() {
248
+ const span = yield* Effect.currentParentSpan.pipe(Effect.orElseSucceed(() => undefined))
249
+ return yield* Effect
250
+ .tryPromise({
251
+ try: async () => {
252
+ const options = { throwOnError: true, updateMeta: { span } }
253
+ const queryResult = await tanstack.refetch(options)
254
+ const data = queryResult.data
255
+ if (data === undefined) {
256
+ throw new Error("TanStack query refetched without data")
257
+ }
258
+ return data
259
+ },
260
+ catch: (error) => error
261
+ })
262
+ .pipe(
263
+ Effect.catch((error) => recoverCauseException<TData, E>(error))
264
+ )
265
+ })
247
266
 
248
267
  const handle: QueryHandle<TData, E> = {
249
268
  awaitResult,
package/src/mutate.ts CHANGED
@@ -263,7 +263,7 @@ export const asStreamResult = <Args extends readonly any[], A, E, R>(
263
263
  }
264
264
 
265
265
  const buildInvalidateCache = <RInvalidator>(
266
- self: { id: string; options?: ClientForOptions },
266
+ self: { id: string; options?: ClientForOptions; disableQueryInvalidation?: boolean },
267
267
  queryInvalidation: MutationOptionsBase["queryInvalidation"] | undefined,
268
268
  queryInvalidator: QueryInvalidator<RInvalidator>
269
269
  ) => {
@@ -310,6 +310,8 @@ const buildInvalidateCache = <RInvalidator>(
310
310
  writeDependencies: DataDependencies.DataDependencies = DataDependencies.empty()
311
311
  ) =>
312
312
  Effect.suspend(() => {
313
+ if (self.disableQueryInvalidation) return Effect.void
314
+
313
315
  const clientKeys = getClientInvalidationKeys(input, output)
314
316
  // Derive extra reactivity keys from repository write-dependencies: every live query whose
315
317
  // recorded read-dependencies intersect this mutation's writes must be refreshed.
@@ -322,7 +324,13 @@ const buildInvalidateCache = <RInvalidator>(
322
324
 
323
325
  return Effect
324
326
  .andThen(
325
- Effect.annotateCurrentSpan({ clientKeys, serverKeys, writeDependencies }),
327
+ Effect.annotateCurrentSpan({
328
+ keys,
329
+ clientKeys,
330
+ serverKeys,
331
+ derivedKeys,
332
+ writeDependencies: [...writeDependencies]
333
+ }),
326
334
  // refetch + AWAIT every live query registered under these keys, so by the time the
327
335
  // mutation resolves the affected queries are fresh.
328
336
  queryInvalidator.invalidateAndAwait(keys)
@@ -337,7 +345,7 @@ const buildInvalidateCache = <RInvalidator>(
337
345
  }
338
346
 
339
347
  export const invalidateQueries = <RInvalidator>(
340
- self: { id: string; options?: ClientForOptions },
348
+ self: { id: string; options?: ClientForOptions; disableQueryInvalidation?: boolean },
341
349
  options: MutationOptionsBase | undefined,
342
350
  queryInvalidator: QueryInvalidator<RInvalidator>
343
351
  ) => {
@@ -435,6 +443,7 @@ export const makeStreamMutation2 = <RInvalidator>(queryInvalidator: QueryInvalid
435
443
  self: {
436
444
  id: string
437
445
  options?: ClientForOptions
446
+ disableQueryInvalidation?: boolean
438
447
  handler: (i: any) => Stream.Stream<any, any, any>
439
448
  },
440
449
  mergedInvalidation?: MutationOptionsBase["queryInvalidation"]
package/src/query.ts CHANGED
@@ -17,7 +17,7 @@ import * as Stream from "effect/Stream"
17
17
  import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"
18
18
  import * as Atom from "effect/unstable/reactivity/Atom"
19
19
  import { computed, type ComputedRef, effectScope, type MaybeRefOrGetter, onBeforeUnmount, onMounted, onScopeDispose, ref, toValue, type WatchSource } from "vue"
20
- import { type AtomClientRuntime, type AtomQueryOptions, awaitAtomResult, buildQueryFamily, buildStreamQueryFamily, disabledQueryAtom, isStaleResult, staleTimeMsOf, withQueryOptions } from "./atomQuery.ts"
20
+ import { type AtomClientRuntime, type AtomQueryOptions, awaitAtomResult, buildQueryFamily, buildStreamQueryFamily, disabledQueryAtom, isStaleResult, refreshAtomWithCurrentSpan, staleTimeMsOf, withQueryOptions } from "./atomQuery.ts"
21
21
 
22
22
  // --- minimal local types (replacing the former @tanstack/vue-query type imports) ---
23
23
  type DefaultError = Error
@@ -294,7 +294,7 @@ export const useAtomQuery = <A, E>(
294
294
  const awaitResult = () => awaitAtomResult(registry, atomRef.value)
295
295
  const refetch = () =>
296
296
  Effect.gen(function*() {
297
- refresh()
297
+ yield* refreshAtomWithCurrentSpan(registry, atomRef.value)
298
298
  return yield* awaitResult()
299
299
  })
300
300
  const data = computed(() => Option.getOrUndefined(AsyncResult.value(result.value)))
@@ -512,7 +512,7 @@ const makeQueryView = <I, A, E, TData>(
512
512
  : awaitAtomResult(registry, atomRef.value)
513
513
  const refetch = () =>
514
514
  Effect.gen(function*() {
515
- refresh()
515
+ yield* refreshAtomWithCurrentSpan(registry, atomRef.value)
516
516
  return yield* awaitResult()
517
517
  })
518
518
  const staleMs = staleTimeMsOf(normalizeQueryOptions(options))
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-span.test.d.ts","sourceRoot":"","sources":["../query-span.test.ts"],"names":[],"mappings":""}