@effect-app/vue 1.4.12 → 1.4.14

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/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @effect-app/vue
2
2
 
3
+ ## 1.4.14
4
+
5
+ ### Patch Changes
6
+
7
+ - c10097e: clear namespace not root
8
+ - Updated dependencies [c10097e]
9
+ - @effect-app/vue@1.4.14
10
+
11
+ ## 1.4.13
12
+
13
+ ### Patch Changes
14
+
15
+ - improve query/mutation spans and handling
16
+ - Updated dependencies
17
+ - @effect-app/vue@1.4.13
18
+
3
19
  ## 1.4.12
4
20
 
5
21
  ### Patch Changes
package/_cjs/mutate.cjs CHANGED
@@ -3,9 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.getQueryKey = void 0;
6
7
  exports.make = make;
7
8
  exports.useSafeMutation = void 0;
8
9
  var _Function = require("@effect-app/core/Function");
10
+ var Result = _interopRequireWildcard(require("@effect-rx/rx/Result"));
9
11
  var _vueQuery = require("@tanstack/vue-query");
10
12
  var _effectApp = require("effect-app");
11
13
  var _utils = require("effect-app/utils");
@@ -13,7 +15,6 @@ var _Cause = require("effect/Cause");
13
15
  var Either = _interopRequireWildcard(require("effect/Either"));
14
16
  var _vue = require("vue");
15
17
  var _internal = require("./internal.cjs");
16
- var Result = _interopRequireWildcard(require("@effect-rx/rx/Result"));
17
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
20
  /* eslint-disable @typescript-eslint/no-explicit-any */
@@ -26,15 +27,33 @@ function make(self) {
26
27
  const latestSuccess = (0, _vue.computed)(() => _effectApp.Option.getOrUndefined(Result.value(result.value)));
27
28
  return (0, _Function.tuple)(result, latestSuccess, execute);
28
29
  }
30
+ const getQueryKey = name => {
31
+ const key = (0, _internal.makeQueryKey)(name);
32
+ const ns = key.filter(_ => _.startsWith("$"));
33
+ return ns.length ? ns : undefined;
34
+ };
35
+ // TODO: more efficient invalidation, including args etc
36
+ // return Effect.promise(() => queryClient.invalidateQueries({
37
+ // predicate: (_) => nses.includes(_.queryKey.filter((_) => _.startsWith("$")).join("/"))
38
+ // }))
39
+ /*
40
+ // const nses: string[] = []
41
+ // for (let i = 0; i < ns.length; i++) {
42
+ // nses.push(ns.slice(0, i + 1).join("/"))
43
+ // }
44
+ */
29
45
  /**
30
46
  * Pass a function that returns an Effect, e.g from a client action, or an Effect
31
47
  * Returns a tuple with state ref and execution function which reports errors as Toast.
32
48
  */
49
+ exports.getQueryKey = getQueryKey;
33
50
  const useSafeMutation = (self, options) => {
34
51
  const queryClient = (0, _vueQuery.useQueryClient)();
35
52
  const state = (0, _vue.ref)({
36
53
  _tag: "Initial"
37
54
  });
55
+ const onSuccess = options?.onSuccess;
56
+ const invalidateQueries = (filters, options) => _effectApp.Effect.promise(() => queryClient.invalidateQueries(filters, options));
38
57
  function handleExit(exit) {
39
58
  return _effectApp.Effect.sync(() => {
40
59
  if (_effectApp.Exit.isSuccess(exit)) {
@@ -77,21 +96,27 @@ const useSafeMutation = (self, options) => {
77
96
  state.value = {
78
97
  _tag: "Loading"
79
98
  };
80
- }).pipe(_effectApp.Effect.andThen(effect), options?.disableQueryInvalidation ? _ => _ : _effectApp.Effect.tap(() => _effectApp.Effect.suspend(() => {
81
- const key = (0, _internal.makeQueryKey)(self.name);
82
- const ns = key.filter(_ => _.startsWith("$"));
83
- const nses = [];
84
- for (let i = 0; i < ns.length; i++) {
85
- nses.push(ns.slice(0, i + 1).join("/"));
99
+ }).pipe(_effectApp.Effect.andThen(effect), _effectApp.Effect.tap(() => _effectApp.Effect.suspend(() => {
100
+ const queryKey = getQueryKey(self.name);
101
+ if (options?.queryInvalidation) {
102
+ const opts = options.queryInvalidation(queryKey, self.name);
103
+ if (!opts.length) {
104
+ return _effectApp.Effect.void;
105
+ }
106
+ return _effectApp.Effect.andThen(_effectApp.Effect.annotateCurrentSpan({
107
+ queryKey,
108
+ opts
109
+ }), _effectApp.Effect.forEach(opts, _ => invalidateQueries(_.filters, _.options), {
110
+ concurrency: "inherit"
111
+ })).pipe(_effectApp.Effect.withSpan("client.query.invalidation"));
86
112
  }
87
- return _effectApp.Effect.promise(() => queryClient.invalidateQueries({
88
- queryKey: [ns[0]]
89
- }));
90
- // TODO: more efficient invalidation, including args etc
91
- // return Effect.promise(() => queryClient.invalidateQueries({
92
- // predicate: (_) => nses.includes(_.queryKey.filter((_) => _.startsWith("$")).join("/"))
93
- // }))
94
- })), _effectApp.Effect.tapDefect(_internal.reportRuntimeError), _effectApp.Effect.exit, _effectApp.Effect.flatMap(handleExit)), (0, _utils.dropUndefinedT)({
113
+ if (!queryKey) return _effectApp.Effect.void;
114
+ return _effectApp.Effect.andThen(_effectApp.Effect.annotateCurrentSpan({
115
+ queryKey
116
+ }), invalidateQueries({
117
+ queryKey
118
+ })).pipe(_effectApp.Effect.withSpan("client.query.invalidation"));
119
+ })), _effectApp.Effect.tapDefect(_internal.reportRuntimeError), _effectApp.Effect.tap(i => onSuccess ? _effectApp.Effect.promise(() => onSuccess(i)) : _effectApp.Effect.void), _effectApp.Effect.exit, _effectApp.Effect.flatMap(handleExit), _effectApp.Effect.withSpan(`mutation ${self.name}`)), (0, _utils.dropUndefinedT)({
95
120
  signal
96
121
  }));
97
122
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mutate.cjs","names":["_Function","require","_vueQuery","_effectApp","_utils","_Cause","Either","_interopRequireWildcard","_vue","_internal","Result","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","make","self","result","shallowRef","initial","execute","Effect","sync","value","waiting","pipe","andThen","map","_","body","exit","fromExit","flatMap","latestSuccess","computed","Option","getOrUndefined","tuple","useSafeMutation","options","queryClient","useQueryClient","state","ref","_tag","handleExit","Exit","isSuccess","data","right","err","Cause","failureOption","cause","isSome","error","left","died","dieOption","interrupted","interruptOption","InterruptedException","Error","exec","fst","snd","effect","signal","isEffect","handler","run","disableQueryInvalidation","tap","suspend","key","makeQueryKey","name","ns","filter","startsWith","nses","length","push","slice","join","promise","invalidateQueries","queryKey","tapDefect","reportRuntimeError","dropUndefinedT","exports"],"sources":["../src/mutate.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"mutate.cjs","names":["_Function","require","Result","_interopRequireWildcard","_vueQuery","_effectApp","_utils","_Cause","Either","_vue","_internal","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","make","self","result","shallowRef","initial","execute","Effect","sync","value","waiting","pipe","andThen","map","_","body","exit","fromExit","flatMap","latestSuccess","computed","Option","getOrUndefined","tuple","getQueryKey","name","key","makeQueryKey","ns","filter","startsWith","length","undefined","exports","useSafeMutation","options","queryClient","useQueryClient","state","ref","_tag","onSuccess","invalidateQueries","filters","promise","handleExit","Exit","isSuccess","data","right","err","Cause","failureOption","cause","isSome","error","left","died","dieOption","interrupted","interruptOption","InterruptedException","Error","exec","fst","snd","effect","signal","isEffect","handler","run","tap","suspend","queryKey","queryInvalidation","opts","void","annotateCurrentSpan","forEach","concurrency","withSpan","tapDefect","reportRuntimeError","dropUndefinedT"],"sources":["../src/mutate.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/_cjs/query.cjs CHANGED
@@ -63,7 +63,7 @@ const useSafeQuery_ = (q, arg, options = {} // TODO
63
63
  queryKey,
64
64
  queryFn: ({
65
65
  signal
66
- }) => _internal.run.value(_effectApp.Effect.map(handler, _ => _.body).pipe(_effectApp.Effect.tapDefect(_internal.reportRuntimeError)), {
66
+ }) => _internal.run.value(_effectApp.Effect.map(handler, _ => _.body).pipe(_effectApp.Effect.tapDefect(_internal.reportRuntimeError), _effectApp.Effect.withSpan(`query ${q.name}`)), {
67
67
  signal
68
68
  })
69
69
  } : {
@@ -71,7 +71,7 @@ const useSafeQuery_ = (q, arg, options = {} // TODO
71
71
  queryKey: [...queryKey, req],
72
72
  queryFn: ({
73
73
  signal
74
- }) => _internal.run.value(_effectApp.Effect.map(handler(req.value), _ => _.body).pipe(_effectApp.Effect.tapDefect(_internal.reportRuntimeError)), {
74
+ }) => _internal.run.value(_effectApp.Effect.map(handler(req.value), _ => _.body).pipe(_effectApp.Effect.tapDefect(_internal.reportRuntimeError), _effectApp.Effect.withSpan(`query ${q.name}`)), {
75
75
  signal
76
76
  })
77
77
  });
@@ -1 +1 @@
1
- {"version":3,"file":"query.cjs","names":["Result","_interopRequireWildcard","require","_vueQuery","_effectApp","_vue","_internal","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","useSafeQuery","self","argOrOptions","options","Effect","isEffect","handler","useSafeQuery_","undefined","q","arg","arr","req","value","ref","queryKey","makeQueryKey","name","useQuery","queryFn","signal","run","map","_","body","pipe","tapDefect","reportRuntimeError","result","computed","swrToQuery","error","data","isValidating","isFetching","latestSuccess","Option","getOrUndefined","refetch","exports","failureWithPrevious","Runtime","FiberFailureCauseId","none","some","success","initial"],"sources":["../src/query.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"query.cjs","names":["Result","_interopRequireWildcard","require","_vueQuery","_effectApp","_vue","_internal","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","useSafeQuery","self","argOrOptions","options","Effect","isEffect","handler","useSafeQuery_","undefined","q","arg","arr","req","value","ref","queryKey","makeQueryKey","name","useQuery","queryFn","signal","run","map","_","body","pipe","tapDefect","reportRuntimeError","withSpan","result","computed","swrToQuery","error","data","isValidating","isFetching","latestSuccess","Option","getOrUndefined","refetch","exports","failureWithPrevious","Runtime","FiberFailureCauseId","none","some","success","initial"],"sources":["../src/query.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/mutate.d.ts CHANGED
@@ -1,9 +1,11 @@
1
+ import * as Result from "@effect-rx/rx/Result";
1
2
  import type * as HttpClient from "@effect/platform/Http/Client";
3
+ import type { InvalidateOptions, InvalidateQueryFilters } from "@tanstack/vue-query";
2
4
  import { Effect } from "effect-app";
3
5
  import type { ApiConfig, FetchResponse } from "effect-app/client";
4
6
  import * as Either from "effect/Either";
7
+ import type { MaybeRefDeep } from "node_modules/@tanstack/vue-query/build/modern/types.js";
5
8
  import type { ComputedRef, Ref } from "vue";
6
- import * as Result from "@effect-rx/rx/Result";
7
9
  export type WatchSource<T = any> = Ref<T> | ComputedRef<T> | (() => T);
8
10
  export declare function make<A, E, R>(self: Effect<FetchResponse<A>, E, R>): readonly [import("vue").ShallowRef<Result.Result<A, E>>, ComputedRef<A | undefined>, Effect.Effect<Result.Success<A, E> | Result.Failure<A, E>, never, R>];
9
11
  export interface MutationInitial {
@@ -29,20 +31,24 @@ type Handler<A, E> = {
29
31
  handler: Effect<A, E, ApiConfig | HttpClient.Client.Default>;
30
32
  name: string;
31
33
  };
34
+ export interface MutationOptions<A, I = void> {
35
+ queryInvalidation?: (defaultKey: string[] | undefined, name: string) => {
36
+ filters?: MaybeRefDeep<InvalidateQueryFilters> | undefined;
37
+ options?: MaybeRefDeep<InvalidateOptions> | undefined;
38
+ }[];
39
+ onSuccess?: (a: A, i: I) => Promise<unknown>;
40
+ }
41
+ export declare const getQueryKey: (name: string) => string[] | undefined;
32
42
  /**
33
43
  * Pass a function that returns an Effect, e.g from a client action, or an Effect
34
44
  * Returns a tuple with state ref and execution function which reports errors as Toast.
35
45
  */
36
46
  export declare const useSafeMutation: {
37
- <I, E, A>(self: HandlerWithInput<I, A, E>, options?: {
38
- disableQueryInvalidation?: boolean;
39
- }): readonly [
47
+ <I, E, A>(self: HandlerWithInput<I, A, E>, options?: MutationOptions<A, I>): readonly [
40
48
  Readonly<Ref<MutationResult<A, E>>>,
41
49
  (i: I, signal?: AbortSignal) => Promise<Either.Either<A, E>>
42
50
  ];
43
- <E, A>(self: Handler<A, E>, options?: {
44
- disableQueryInvalidation?: boolean;
45
- }): readonly [
51
+ <E, A>(self: Handler<A, E>, options?: MutationOptions<A>): readonly [
46
52
  Readonly<Ref<MutationResult<A, E>>>,
47
53
  (signal?: AbortSignal) => Promise<Either.Either<A, E>>
48
54
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../src/mutate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../src/mutate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,KAAK,UAAU,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEpF,OAAO,EAAS,MAAM,EAAgB,MAAM,YAAY,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wDAAwD,CAAA;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAI3C,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;AACtE,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,8JAiBjE;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CACzB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CACjB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAClB;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI,eAAe,GAAG,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;AAE5G,KAAK,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI;IAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtE,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AACD,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnG,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI;IAC1C,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK;QACtE,OAAO,CAAC,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAA;QAC1D,OAAO,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAA;KACtD,EAAE,CAAA;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC7C;AAED,eAAO,MAAM,WAAW,SAAU,MAAM,yBAIvC,CAAA;AAYD;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE;IAC5B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;QACpF,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,CACE,CAAC,EAAE,CAAC,EACJ,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAClC,CAAA;IACD,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS;QAClE,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,CACE,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAClC,CAAA;CAwGF,CAAA"}
package/dist/mutate.js CHANGED
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { tuple } from "@effect-app/core/Function";
3
+ import * as Result from "@effect-rx/rx/Result";
3
4
  import { useQueryClient } from "@tanstack/vue-query";
4
5
  import { Cause, Effect, Exit, Option } from "effect-app";
5
6
  import { dropUndefinedT } from "effect-app/utils";
@@ -7,7 +8,6 @@ import { InterruptedException } from "effect/Cause";
7
8
  import * as Either from "effect/Either";
8
9
  import { computed, ref, shallowRef } from "vue";
9
10
  import { makeQueryKey, reportRuntimeError, run } from "./internal.js";
10
- import * as Result from "@effect-rx/rx/Result";
11
11
  export function make(self) {
12
12
  const result = shallowRef(Result.initial());
13
13
  const execute = Effect
@@ -18,6 +18,21 @@ export function make(self) {
18
18
  const latestSuccess = computed(() => Option.getOrUndefined(Result.value(result.value)));
19
19
  return tuple(result, latestSuccess, execute);
20
20
  }
21
+ export const getQueryKey = (name) => {
22
+ const key = makeQueryKey(name);
23
+ const ns = key.filter((_) => _.startsWith("$"));
24
+ return ns.length ? ns : undefined;
25
+ };
26
+ // TODO: more efficient invalidation, including args etc
27
+ // return Effect.promise(() => queryClient.invalidateQueries({
28
+ // predicate: (_) => nses.includes(_.queryKey.filter((_) => _.startsWith("$")).join("/"))
29
+ // }))
30
+ /*
31
+ // const nses: string[] = []
32
+ // for (let i = 0; i < ns.length; i++) {
33
+ // nses.push(ns.slice(0, i + 1).join("/"))
34
+ // }
35
+ */
21
36
  /**
22
37
  * Pass a function that returns an Effect, e.g from a client action, or an Effect
23
38
  * Returns a tuple with state ref and execution function which reports errors as Toast.
@@ -25,6 +40,8 @@ export function make(self) {
25
40
  export const useSafeMutation = (self, options) => {
26
41
  const queryClient = useQueryClient();
27
42
  const state = ref({ _tag: "Initial" });
43
+ const onSuccess = options?.onSuccess;
44
+ const invalidateQueries = (filters, options) => Effect.promise(() => queryClient.invalidateQueries(filters, options));
28
45
  function handleExit(exit) {
29
46
  return Effect.sync(() => {
30
47
  if (Exit.isSuccess(exit)) {
@@ -62,20 +79,25 @@ export const useSafeMutation = (self, options) => {
62
79
  .sync(() => {
63
80
  state.value = { _tag: "Loading" };
64
81
  })
65
- .pipe(Effect.andThen(effect), options?.disableQueryInvalidation ? (_) => _ : Effect.tap(() => Effect.suspend(() => {
66
- const key = makeQueryKey(self.name);
67
- const ns = key.filter((_) => _.startsWith("$"));
68
- const nses = [];
69
- for (let i = 0; i < ns.length; i++) {
70
- nses.push(ns.slice(0, i + 1).join("/"));
82
+ .pipe(Effect.andThen(effect), Effect.tap(() => Effect
83
+ .suspend(() => {
84
+ const queryKey = getQueryKey(self.name);
85
+ if (options?.queryInvalidation) {
86
+ const opts = options.queryInvalidation(queryKey, self.name);
87
+ if (!opts.length) {
88
+ return Effect.void;
89
+ }
90
+ return Effect
91
+ .andThen(Effect.annotateCurrentSpan({ queryKey, opts }), Effect.forEach(opts, (_) => invalidateQueries(_.filters, _.options), { concurrency: "inherit" }))
92
+ .pipe(Effect.withSpan("client.query.invalidation"));
71
93
  }
72
- return Effect.promise(() => queryClient.invalidateQueries({ queryKey: [ns[0]] }));
73
- // TODO: more efficient invalidation, including args etc
74
- // return Effect.promise(() => queryClient.invalidateQueries({
75
- // predicate: (_) => nses.includes(_.queryKey.filter((_) => _.startsWith("$")).join("/"))
76
- // }))
77
- })), Effect.tapDefect(reportRuntimeError), Effect.exit, Effect.flatMap(handleExit)), dropUndefinedT({ signal }));
94
+ if (!queryKey)
95
+ return Effect.void;
96
+ return Effect
97
+ .andThen(Effect.annotateCurrentSpan({ queryKey }), invalidateQueries({ queryKey }))
98
+ .pipe(Effect.withSpan("client.query.invalidation"));
99
+ })), Effect.tapDefect(reportRuntimeError), Effect.tap((i) => onSuccess ? Effect.promise(() => onSuccess(i)) : Effect.void), Effect.exit, Effect.flatMap(handleExit), Effect.withSpan(`mutation ${self.name}`)), dropUndefinedT({ signal }));
78
100
  };
79
101
  return tuple(state, exec);
80
102
  };
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL211dGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRWpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXhELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDbkQsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFFdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXJFLE9BQU8sS0FBSyxNQUFNLE1BQU0sc0JBQXNCLENBQUE7QUFHOUMsTUFBTSxVQUFVLElBQUksQ0FBVSxJQUFvQztJQUNoRSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBeUIsQ0FBQyxDQUFBO0lBRWxFLE1BQU0sT0FBTyxHQUFHLE1BQU07U0FDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNULE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDN0MsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FB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
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL211dGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ2pELE9BQU8sS0FBSyxNQUFNLE1BQU0sc0JBQXNCLENBQUE7QUFHOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUNuRCxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUd2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHckUsTUFBTSxVQUFVLElBQUksQ0FBVSxJQUFvQztJQUNoRSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBeUIsQ0FBQyxDQUFBO0lBRWxFLE1BQU0sT0FBTyxHQUFHLE1BQU07U0FDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNULE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDN0MsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FB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
package/dist/query.js CHANGED
@@ -60,7 +60,7 @@ export const useSafeQuery_ = (q, arg, options = {} // TODO
60
60
  queryKey,
61
61
  queryFn: ({ signal }) => run.value(Effect
62
62
  .map(handler, (_) => _.body)
63
- .pipe(Effect.tapDefect(reportRuntimeError)), { signal })
63
+ .pipe(Effect.tapDefect(reportRuntimeError), Effect.withSpan(`query ${q.name}`)), { signal })
64
64
  }
65
65
  : {
66
66
  ...options,
@@ -68,7 +68,7 @@ export const useSafeQuery_ = (q, arg, options = {} // TODO
68
68
  queryFn: ({ signal }) => run
69
69
  .value(Effect
70
70
  .map(handler(req.value), (_) => _.body)
71
- .pipe(Effect.tapDefect(reportRuntimeError)), { signal })
71
+ .pipe(Effect.tapDefect(reportRuntimeError), Effect.withSpan(`query ${q.name}`)), { signal })
72
72
  });
73
73
  const result = computed(() => swrToQuery({
74
74
  error: r.error.value ?? undefined,
@@ -87,4 +87,4 @@ function swrToQuery(r) {
87
87
  }
88
88
  return Result.initial(r.isValidating);
89
89
  }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCx3REFBd0Q7QUFDeEQsNERBQTREO0FBQzVELE9BQU8sS0FBSyxNQUFNLE1BQU0sc0JBQXNCLENBQUE7QUFROUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRTlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUdwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUVuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQXdDckUsTUFBTSxVQUFVLFlBQVksQ0FDMUIsSUFBUztBQUNUOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBc0JFO0FBQ0YsWUFBa0IsRUFDbEIsT0FBYTtJQUViLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUM7UUFDOUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBQ2hELENBQUM7QUFNRCxnQkFBZ0I7QUFDaEIsc1JBQXNSO0FBQ3RSLDJSQUEyUjtBQUMzUix1UkFBdVI7QUFDdlIsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQzNCLENBb0JHLEVBQ0gsR0FBd0IsRUFDeEIsVUFBd0UsRUFBRSxDQUFDLE9BQU87RUFDbEYsRUFBRTtJQUNGLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQTtJQUNmLE1BQU0sR0FBRyxHQUFpQixDQUFDLEdBQUc7UUFDNUIsQ0FBQyxDQUFDLFNBQVM7UUFD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
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHNEQUFzRDtBQUN0RCx3REFBd0Q7QUFDeEQsNERBQTREO0FBQzVELE9BQU8sS0FBSyxNQUFNLE1BQU0sc0JBQXNCLENBQUE7QUFROUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRTlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUdwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUVuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQXdDckUsTUFBTSxVQUFVLFlBQVksQ0FDMUIsSUFBUztBQUNUOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBc0JFO0FBQ0YsWUFBa0IsRUFDbEIsT0FBYTtJQUViLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUM7UUFDOUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBQ2hELENBQUM7QUFNRCxnQkFBZ0I7QUFDaEIsc1JBQXNSO0FBQ3RSLDJSQUEyUjtBQUMzUix1UkFBdVI7QUFDdlIsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQzNCLENBb0JHLEVBQ0gsR0FBd0IsRUFDeEIsVUFBd0UsRUFBRSxDQUFDLE9BQU87RUFDbEYsRUFBRTtJQUNGLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQTtJQUNmLE1BQU0sR0FBRyxHQUFpQixDQUFDLEdBQUc7UUFDNUIsQ0FBQyxDQUFDLFNBQVM7UUFD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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/vue",
3
- "version": "1.4.12",
3
+ "version": "1.4.14",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "homepage": "https://github.com/effect-ts-app/libs/tree/main/packages/vue",
@@ -9,9 +9,9 @@
9
9
  "@tanstack/vue-query": "^5.37.1",
10
10
  "query-string": "^9.0.0",
11
11
  "@effect-app/core": "1.2.3",
12
- "@effect-app/vue": "1.4.12",
13
- "effect-app": "1.4.8",
14
- "@effect-app/schema": "1.2.8"
12
+ "@effect-app/vue": "1.4.14",
13
+ "@effect-app/schema": "1.2.8",
14
+ "effect-app": "1.4.8"
15
15
  },
16
16
  "peerDependencies": {
17
17
  "@effect/platform": "^0.53.14",
package/src/mutate.ts CHANGED
@@ -1,18 +1,19 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { tuple } from "@effect-app/core/Function"
3
+ import * as Result from "@effect-rx/rx/Result"
3
4
  import type * as HttpClient from "@effect/platform/Http/Client"
5
+ import type { InvalidateOptions, InvalidateQueryFilters } from "@tanstack/vue-query"
4
6
  import { useQueryClient } from "@tanstack/vue-query"
5
7
  import { Cause, Effect, Exit, Option } from "effect-app"
6
8
  import type { ApiConfig, FetchResponse } from "effect-app/client"
7
9
  import { dropUndefinedT } from "effect-app/utils"
8
10
  import { InterruptedException } from "effect/Cause"
9
11
  import * as Either from "effect/Either"
12
+ import type { MaybeRefDeep } from "node_modules/@tanstack/vue-query/build/modern/types.js"
10
13
  import type { ComputedRef, Ref } from "vue"
11
14
  import { computed, ref, shallowRef } from "vue"
12
15
  import { makeQueryKey, reportRuntimeError, run } from "./internal.js"
13
16
 
14
- import * as Result from "@effect-rx/rx/Result"
15
-
16
17
  export type WatchSource<T = any> = Ref<T> | ComputedRef<T> | (() => T)
17
18
  export function make<A, E, R>(self: Effect<FetchResponse<A>, E, R>) {
18
19
  const result = shallowRef(Result.initial() as Result.Result<A, E>)
@@ -59,19 +60,43 @@ type HandlerWithInput<I, A, E> = {
59
60
  }
60
61
  type Handler<A, E> = { handler: Effect<A, E, ApiConfig | HttpClient.Client.Default>; name: string }
61
62
 
63
+ export interface MutationOptions<A, I = void> {
64
+ queryInvalidation?: (defaultKey: string[] | undefined, name: string) => {
65
+ filters?: MaybeRefDeep<InvalidateQueryFilters> | undefined
66
+ options?: MaybeRefDeep<InvalidateOptions> | undefined
67
+ }[]
68
+ onSuccess?: (a: A, i: I) => Promise<unknown>
69
+ }
70
+
71
+ export const getQueryKey = (name: string) => {
72
+ const key = makeQueryKey(name)
73
+ const ns = key.filter((_) => _.startsWith("$"))
74
+ return ns.length ? ns : undefined
75
+ }
76
+ // TODO: more efficient invalidation, including args etc
77
+ // return Effect.promise(() => queryClient.invalidateQueries({
78
+ // predicate: (_) => nses.includes(_.queryKey.filter((_) => _.startsWith("$")).join("/"))
79
+ // }))
80
+ /*
81
+ // const nses: string[] = []
82
+ // for (let i = 0; i < ns.length; i++) {
83
+ // nses.push(ns.slice(0, i + 1).join("/"))
84
+ // }
85
+ */
86
+
62
87
  /**
63
88
  * Pass a function that returns an Effect, e.g from a client action, or an Effect
64
89
  * Returns a tuple with state ref and execution function which reports errors as Toast.
65
90
  */
66
91
  export const useSafeMutation: {
67
- <I, E, A>(self: HandlerWithInput<I, A, E>, options?: { disableQueryInvalidation?: boolean }): readonly [
92
+ <I, E, A>(self: HandlerWithInput<I, A, E>, options?: MutationOptions<A, I>): readonly [
68
93
  Readonly<Ref<MutationResult<A, E>>>,
69
94
  (
70
95
  i: I,
71
96
  signal?: AbortSignal
72
97
  ) => Promise<Either.Either<A, E>>
73
98
  ]
74
- <E, A>(self: Handler<A, E>, options?: { disableQueryInvalidation?: boolean }): readonly [
99
+ <E, A>(self: Handler<A, E>, options?: MutationOptions<A>): readonly [
75
100
  Readonly<Ref<MutationResult<A, E>>>,
76
101
  (
77
102
  signal?: AbortSignal
@@ -84,10 +109,16 @@ export const useSafeMutation: {
84
109
  | Handler<A, E>["handler"]
85
110
  name: string
86
111
  },
87
- options?: { disableQueryInvalidation?: boolean }
112
+ options?: MutationOptions<A>
88
113
  ) => {
89
114
  const queryClient = useQueryClient()
90
115
  const state: Ref<MutationResult<A, E>> = ref<MutationResult<A, E>>({ _tag: "Initial" }) as any
116
+ const onSuccess = options?.onSuccess
117
+
118
+ const invalidateQueries = (
119
+ filters?: MaybeRefDeep<InvalidateQueryFilters> | undefined,
120
+ options?: MaybeRefDeep<InvalidateOptions> | undefined
121
+ ) => Effect.promise(() => queryClient.invalidateQueries(filters, options))
91
122
 
92
123
  function handleExit(exit: Exit.Exit<A, E>): Effect<Either.Either<A, E>, never, never> {
93
124
  return Effect.sync(() => {
@@ -132,24 +163,39 @@ export const useSafeMutation: {
132
163
  })
133
164
  .pipe(
134
165
  Effect.andThen(effect),
135
- options?.disableQueryInvalidation ? (_) => _ : Effect.tap(() =>
136
- Effect.suspend(() => {
137
- const key = makeQueryKey(self.name)
138
- const ns = key.filter((_) => _.startsWith("$"))
139
- const nses: string[] = []
140
- for (let i = 0; i < ns.length; i++) {
141
- nses.push(ns.slice(0, i + 1).join("/"))
142
- }
143
- return Effect.promise(() => queryClient.invalidateQueries({ queryKey: [ns[0]] }))
144
- // TODO: more efficient invalidation, including args etc
145
- // return Effect.promise(() => queryClient.invalidateQueries({
146
- // predicate: (_) => nses.includes(_.queryKey.filter((_) => _.startsWith("$")).join("/"))
147
- // }))
148
- })
166
+ Effect.tap(() =>
167
+ Effect
168
+ .suspend(() => {
169
+ const queryKey = getQueryKey(self.name)
170
+
171
+ if (options?.queryInvalidation) {
172
+ const opts = options.queryInvalidation(queryKey, self.name)
173
+ if (!opts.length) {
174
+ return Effect.void
175
+ }
176
+ return Effect
177
+ .andThen(
178
+ Effect.annotateCurrentSpan({ queryKey, opts }),
179
+ Effect.forEach(opts, (_) => invalidateQueries(_.filters, _.options), { concurrency: "inherit" })
180
+ )
181
+ .pipe(Effect.withSpan("client.query.invalidation"))
182
+ }
183
+
184
+ if (!queryKey) return Effect.void
185
+
186
+ return Effect
187
+ .andThen(
188
+ Effect.annotateCurrentSpan({ queryKey }),
189
+ invalidateQueries({ queryKey })
190
+ )
191
+ .pipe(Effect.withSpan("client.query.invalidation"))
192
+ })
149
193
  ),
150
194
  Effect.tapDefect(reportRuntimeError),
195
+ Effect.tap((i) => onSuccess ? Effect.promise(() => onSuccess(i)) : Effect.void),
151
196
  Effect.exit,
152
- Effect.flatMap(handleExit)
197
+ Effect.flatMap(handleExit),
198
+ Effect.withSpan(`mutation ${self.name}`)
153
199
  ),
154
200
  dropUndefinedT({ signal })
155
201
  )
package/src/query.ts CHANGED
@@ -144,7 +144,7 @@ export const useSafeQuery_ = <I, A, E>(
144
144
  run.value(
145
145
  Effect
146
146
  .map(handler, (_) => _.body)
147
- .pipe(Effect.tapDefect(reportRuntimeError)),
147
+ .pipe(Effect.tapDefect(reportRuntimeError), Effect.withSpan(`query ${q.name}`)),
148
148
  { signal }
149
149
  )
150
150
  }
@@ -156,7 +156,7 @@ export const useSafeQuery_ = <I, A, E>(
156
156
  .value(
157
157
  Effect
158
158
  .map(handler(req.value), (_) => _.body)
159
- .pipe(Effect.tapDefect(reportRuntimeError)),
159
+ .pipe(Effect.tapDefect(reportRuntimeError), Effect.withSpan(`query ${q.name}`)),
160
160
  { signal }
161
161
  )
162
162
  }