@effect-app/vue 4.0.0-beta.98 → 4.0.0

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 (128) hide show
  1. package/CHANGELOG.md +2707 -0
  2. package/dist/atomQuery.d.ts +120 -0
  3. package/dist/atomQuery.d.ts.map +1 -0
  4. package/dist/atomQuery.js +434 -0
  5. package/dist/commander.d.ts +318 -43
  6. package/dist/commander.d.ts.map +1 -1
  7. package/dist/commander.js +593 -81
  8. package/dist/confirm.d.ts +5 -3
  9. package/dist/confirm.d.ts.map +1 -1
  10. package/dist/confirm.js +12 -14
  11. package/dist/dependencyMetadata.d.ts +18 -0
  12. package/dist/dependencyMetadata.d.ts.map +1 -0
  13. package/dist/dependencyMetadata.js +67 -0
  14. package/dist/errorReporter.d.ts +6 -4
  15. package/dist/errorReporter.d.ts.map +1 -1
  16. package/dist/errorReporter.js +14 -19
  17. package/dist/form.d.ts +5 -5
  18. package/dist/form.d.ts.map +1 -1
  19. package/dist/form.js +16 -10
  20. package/dist/internal/tanstackQuery.d.ts +9 -0
  21. package/dist/internal/tanstackQuery.d.ts.map +1 -0
  22. package/dist/internal/tanstackQuery.js +204 -0
  23. package/dist/intl.d.ts +4 -4
  24. package/dist/intl.d.ts.map +1 -1
  25. package/dist/intl.js +2 -2
  26. package/dist/lib.d.ts +8 -10
  27. package/dist/lib.d.ts.map +1 -1
  28. package/dist/lib.js +37 -12
  29. package/dist/liveQueryInvalidation.d.ts +16 -0
  30. package/dist/liveQueryInvalidation.d.ts.map +1 -0
  31. package/dist/liveQueryInvalidation.js +115 -0
  32. package/dist/makeClient.d.ts +232 -109
  33. package/dist/makeClient.d.ts.map +1 -1
  34. package/dist/makeClient.js +416 -84
  35. package/dist/makeContext.d.ts.map +1 -1
  36. package/dist/makeIntl.d.ts.map +1 -1
  37. package/dist/makeUseCommand.d.ts +3 -2
  38. package/dist/makeUseCommand.d.ts.map +1 -1
  39. package/dist/makeUseCommand.js +2 -2
  40. package/dist/mutate.d.ts +110 -41
  41. package/dist/mutate.d.ts.map +1 -1
  42. package/dist/mutate.js +236 -59
  43. package/dist/query.d.ts +161 -44
  44. package/dist/query.d.ts.map +1 -1
  45. package/dist/query.js +382 -113
  46. package/dist/queryLifetime.d.ts +25 -0
  47. package/dist/queryLifetime.d.ts.map +1 -0
  48. package/dist/queryLifetime.js +54 -0
  49. package/dist/routeParams.d.ts +4 -4
  50. package/dist/routeParams.d.ts.map +1 -1
  51. package/dist/routeParams.js +4 -3
  52. package/dist/runtime.d.ts +1 -17
  53. package/dist/runtime.d.ts.map +1 -1
  54. package/dist/runtime.js +2 -38
  55. package/dist/suspense.d.ts +19 -0
  56. package/dist/suspense.d.ts.map +1 -0
  57. package/dist/suspense.js +38 -0
  58. package/dist/toast.d.ts +1 -45
  59. package/dist/toast.d.ts.map +1 -1
  60. package/dist/toast.js +2 -32
  61. package/dist/withToast.d.ts +1 -24
  62. package/dist/withToast.d.ts.map +1 -1
  63. package/dist/withToast.js +2 -45
  64. package/docs/atom-query-api-redesign.md +207 -0
  65. package/docs/mutation-command-atoms.md +40 -0
  66. package/docs/query-key-invalidation.md +107 -0
  67. package/examples/streamMutation.ts +72 -0
  68. package/package.json +35 -94
  69. package/src/atomQuery.ts +600 -0
  70. package/src/commander.ts +1064 -116
  71. package/src/confirm.ts +12 -14
  72. package/src/dependencyMetadata.ts +84 -0
  73. package/src/errorReporter.ts +65 -75
  74. package/src/form.ts +22 -15
  75. package/src/index.ts +7 -7
  76. package/src/internal/tanstackQuery.ts +308 -0
  77. package/src/intl.ts +2 -2
  78. package/src/lib.ts +51 -23
  79. package/src/liveQueryInvalidation.ts +138 -0
  80. package/src/makeClient.ts +972 -263
  81. package/src/makeIntl.ts +2 -2
  82. package/src/makeUseCommand.ts +8 -5
  83. package/src/mutate.ts +407 -154
  84. package/src/query.ts +758 -242
  85. package/src/queryLifetime.ts +74 -0
  86. package/src/routeParams.ts +7 -7
  87. package/src/runtime.ts +1 -54
  88. package/src/suspense.ts +43 -0
  89. package/src/toast.ts +1 -52
  90. package/src/withToast.ts +1 -99
  91. package/test/Mutation.test.ts +104 -17
  92. package/test/dependencyInvalidation.test.ts +444 -0
  93. package/test/dist/dependencyInvalidation.test.d.ts.map +1 -0
  94. package/test/dist/form.test.d.ts.map +1 -1
  95. package/test/dist/inactiveInvalidation.test.d.ts.map +1 -0
  96. package/test/dist/interrupt-refetch-repro.test.d.ts.map +1 -0
  97. package/test/dist/lib.test.d.ts.map +1 -0
  98. package/test/dist/liveQueryInvalidation.test.d.ts.map +1 -0
  99. package/test/dist/query-span.test.d.ts.map +1 -0
  100. package/test/dist/queryOptions.test.d.ts.map +1 -0
  101. package/test/dist/streamFinal.test.d.ts.map +1 -0
  102. package/test/dist/streamFn.test.d.ts.map +1 -0
  103. package/test/dist/stubs.d.ts +3681 -256
  104. package/test/dist/stubs.d.ts.map +1 -1
  105. package/test/dist/stubs.js +166 -25
  106. package/test/dist/suspense-regression.test.d.ts.map +1 -0
  107. package/test/dist/suspense.test.d.ts.map +1 -0
  108. package/test/form-validation-errors.test.ts +2 -1
  109. package/test/form.test.ts +2 -1
  110. package/test/inactiveInvalidation.test.ts +172 -0
  111. package/test/interrupt-refetch-repro.test.ts +625 -0
  112. package/test/lib.test.ts +240 -0
  113. package/test/liveQueryInvalidation.test.ts +108 -0
  114. package/test/makeClient.test.ts +414 -32
  115. package/test/query-span.test.ts +92 -0
  116. package/test/queryOptions.test.ts +88 -0
  117. package/test/streamFinal.test.ts +64 -0
  118. package/test/streamFn.test.ts +457 -0
  119. package/test/stubs.ts +194 -36
  120. package/test/suspense-regression.test.ts +168 -0
  121. package/test/suspense.test.ts +160 -0
  122. package/tsconfig.examples.json +20 -0
  123. package/tsconfig.json +9 -1
  124. package/tsconfig.src.json +34 -34
  125. package/tsconfig.test.json +2 -2
  126. package/vitest.config.ts +5 -5
  127. package/eslint.config.mjs +0 -24
  128. package/tsconfig.json.bak +0 -12
@@ -1 +1 @@
1
- {"version":3,"file":"makeContext.d.ts","sourceRoot":"","sources":["../src/makeContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,YAAY,EAAW,MAAM,KAAK,CAAA;AAExD,eAAO,MAAM,WAAW,EAAE;IACxB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG;QACX,GAAG,EAAE,MAAM,CAAC,CAAA;QACZ,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAA;KAC7B,CAAA;IACD,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG;QACZ,GAAG,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;QACxB,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAA;KAC7B,CAAA;CAOF,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,oBAMpD,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC;;sBAId,CAAC;CAEtB,CAAA"}
1
+ {"version":3,"file":"makeContext.d.ts","sourceRoot":"","sources":["../src/makeContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,YAAY,EAAW,MAAM,KAAK,CAAA;AAExD,eAAO,MAAM,WAAW,EAAE;IACxB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG;QACX,GAAG,EAAE,MAAM,CAAC,CAAA;QACZ,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAA;KAC7B,CAAA;IACD,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG;QACZ,GAAG,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;QACxB,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAA;KAC7B,CAAA;CAOF,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,oBAMpD,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC;IAGhC,GAAG;IACH,OAAO,WAAW,CAAC;CAEtB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"makeIntl.d.ts","sourceRoot":"","sources":["../src/makeIntl.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAEnJ,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,OAAO,IAAI,wBAAwB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC1H,OAAO,EAAE,KAAK,GAAG,EAAS,MAAM,KAAK,CAAA;AAIrC,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;CAAG;AAGrG,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IACrF,UAAU,EAAE,UAAU,CAAA;CACvB;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,SAAS,MAAM,EAC5C,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAEhD,WAAW,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;;;oBAyBvB,MAAM,CAAC,OAAO,QAAQ,EAAE,MAAM,CAAC,WAC1B,MAAM,CACb,MAAM,EACN,aAAa,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CACnD;gCAgBoB,CACnB,UAAU,EAAE,iBAAiB,EAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC3E,IAAI,CAAC,EAAE,wBAAwB,KAC5B,MAAM;uBAIqB,SAAS,CAAC,MAAM,CAAC;;;;;;CAKtD,CAAA"}
1
+ {"version":3,"file":"makeIntl.d.ts","sourceRoot":"","sources":["../src/makeIntl.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAEnJ,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,OAAO,IAAI,wBAAwB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC1H,OAAO,EAAE,KAAK,GAAG,EAAS,MAAM,KAAK,CAAA;AAIrC,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;CAAG;AAGrG,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IACrF,UAAU,EAAE,UAAU,CAAA;CACvB;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,SAAS,MAAM,YAClC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,aAErC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;;;oBAyBvB,MAAM,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,WAC1B,MAAM,CACb,MAAM,EACN,aAAa,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CACnD;gCAgBoB,CACnB,UAAU,EAAE,iBAAiB,EAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC3E,IAAI,CAAC,EAAE,wBAAwB,KAC5B,MAAM;uBAIqB,SAAS,CAAC,MAAM,CAAC;;;;;;CAKtD,CAAA"}
@@ -1,7 +1,8 @@
1
- import { Effect, type Layer } from "effect-app";
1
+ import * as Effect from "effect-app/Effect";
2
+ import type * as Layer from "effect-app/Layer";
2
3
  import { Commander, type CommanderImpl, CommanderStatic } from "./commander.js";
3
4
  type X<X> = X;
4
- export interface CommanderResolved<RT, RTHooks> extends X<typeof CommanderStatic>, Pick<CommanderImpl<RT, RTHooks>, "fn" | "wrap" | "alt" | "alt2"> {
5
+ export interface CommanderResolved<RT, RTHooks> extends X<typeof CommanderStatic>, Pick<CommanderImpl<RT, RTHooks>, "fn" | "wrap" | "streamWrap" | "streamFn" | "alt" | "alt2"> {
5
6
  }
6
7
  export declare const makeUseCommand: <R = never, RTHooks = never>(rtHooks: Layer.Layer<RTHooks, never, R>) => Effect.Effect<CommanderResolved<R, RTHooks>, never, R | Commander>;
7
8
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"makeUseCommand.d.ts","sourceRoot":"","sources":["../src/makeUseCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAE/E,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAGb,MAAM,WAAW,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAC5C,SAAQ,CAAC,CAAC,OAAO,eAAe,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;CAEpG;AAED,eAAO,MAAM,cAAc,GACf,CAAC,UAAU,OAAO,wHAa7B,CAAA"}
1
+ {"version":3,"file":"makeUseCommand.d.ts","sourceRoot":"","sources":["../src/makeUseCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAE/E,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAGb,MAAM,WAAW,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAC5C,SACE,CAAC,CAAC,OAAO,eAAe,CAAC,EACzB,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;CAE/F;AAED,eAAO,MAAM,cAAc,GACf,CAAC,UAAU,OAAO,wHAa7B,CAAA"}
@@ -1,4 +1,4 @@
1
- import { Effect } from "effect-app";
1
+ import * as Effect from "effect-app/Effect";
2
2
  import { Commander, CommanderStatic } from "./commander.js";
3
3
  export const makeUseCommand = Effect.fnUntraced(function* (rtHooks) {
4
4
  const cmndr = yield* Commander;
@@ -10,4 +10,4 @@ export const makeUseCommand = Effect.fnUntraced(function* (rtHooks) {
10
10
  };
11
11
  return command;
12
12
  });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVVzZUNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWFrZVVzZUNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBYyxNQUFNLFlBQVksQ0FBQTtBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFzQixlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQVUvRSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FDN0MsUUFBUSxDQUFDLEVBQTZCLE9BQXVDO0lBQzNFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUM5QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFLLENBQUE7SUFFMUMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUVwQyxNQUFNLE9BQU8sR0FBRztRQUNkLEdBQUcsSUFBSTtRQUNQLEdBQUcsZUFBZTtLQUNuQixDQUFBO0lBRUQsT0FBTyxPQUF3QyxDQUFBO0FBQ2pELENBQUMsQ0FDRixDQUFBIn0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVVzZUNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWFrZVVzZUNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFzQixlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQVkvRSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FDN0MsUUFBUSxDQUFDLEVBQTZCLE9BQXVDO0lBQzNFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUM5QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFLLENBQUE7SUFFMUMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUVwQyxNQUFNLE9BQU8sR0FBa0M7UUFDN0MsR0FBRyxJQUFJO1FBQ1AsR0FBRyxlQUFlO0tBQ25CLENBQUE7SUFFRCxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDLENBQ0YsQ0FBQSJ9
package/dist/mutate.d.ts CHANGED
@@ -1,62 +1,131 @@
1
- import { type InvalidateOptions, type InvalidateQueryFilters, type QueryClient } from "@tanstack/vue-query";
2
- import { type Cause, Effect, type Exit } from "effect-app";
3
1
  import { type Req } from "effect-app/client";
4
- import type { ClientForOptions, RequestHandler, RequestHandlerWithInput } from "effect-app/client/clientFor";
5
- import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
2
+ import type { ClientForOptions, RequestHandlerWithInput } from "effect-app/client/clientFor";
3
+ import type { InvalidateQueryInstruction } from "effect-app/client/makeClient";
4
+ import * as Effect from "effect-app/Effect";
5
+ import type * as Cause from "effect/Cause";
6
+ import * as Exit from "effect/Exit";
7
+ import * as AsyncResult from "effect/reactivity/AsyncResult";
8
+ import type * as Reactivity from "effect/reactivity/Reactivity";
9
+ import * as Stream from "effect/Stream";
6
10
  import { type ComputedRef } from "vue";
7
- export declare const getQueryKey: (h: {
11
+ export type GetQueryKey = (h: {
8
12
  id: string;
9
13
  options?: ClientForOptions;
10
14
  }) => string[];
15
+ /**
16
+ * Default heuristic: invalidate the parent namespace of the action.
17
+ * e.g. `$project/$configuration.get` -> `["$project"]`
18
+ * e.g. `$project/$configuration/$something.get` -> `["$project","$configuration"]`
19
+ */
20
+ export declare const defaultGetQueryKey: GetQueryKey;
21
+ /**
22
+ * Override the default query-key heuristic used by mutations for cache
23
+ * invalidation. Call once at app bootstrap. Pass `undefined` to restore the
24
+ * built-in default.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * // invalidate the full namespace of the action (no parent collapse)
29
+ * setDefaultGetQueryKey((h) => {
30
+ * const key = makeQueryKey(h)
31
+ * const ns = key.filter((_) => _.startsWith("$"))
32
+ * if (!ns.length) throw new Error("empty query key for: " + h.id)
33
+ * return ns
34
+ * })
35
+ * ```
36
+ */
37
+ export declare const setDefaultGetQueryKey: (fn: GetQueryKey | undefined) => void;
38
+ export declare const getQueryKey: GetQueryKey;
11
39
  export declare function mutationResultToVue<A, E>(mutationResult: AsyncResult.AsyncResult<A, E>): Res<A, E>;
12
40
  export interface Res<A, E> {
13
41
  readonly loading: boolean;
14
42
  readonly data: A | undefined;
15
43
  readonly error: Cause.Cause<E> | undefined;
16
44
  }
17
- export declare function make<A, E, R>(self: Effect.Effect<A, E, R>): readonly [import("vue").ShallowRef<AsyncResult.AsyncResult<A, E>, AsyncResult.AsyncResult<A, E>>, ComputedRef<A | undefined>, Effect.Effect<AsyncResult.Success<A, E> | AsyncResult.Failure<A, E>, never, R>];
18
- export interface MutationOptionsBase {
45
+ export declare function make<A, E, R>(self: Effect.Effect<A, E, R>): readonly [import("vue").ShallowRef<AsyncResult.AsyncResult<A, E>, AsyncResult.AsyncResult<A, E>>, ComputedRef<A | undefined>, Effect.Effect<AsyncResult.Failure<A, E> | AsyncResult.Success<A, E>, never, R>];
46
+ /**
47
+ * An entry for `queryInvalidation`: a raw query key, an `{ id }` handler ref, or a
48
+ * `{ filters }` shape. The atom engine acts on entries that carry a concrete query
49
+ * key: raw arrays, handler refs, or `{ filters: { queryKey } }`. Predicate-only
50
+ * filters have no exact-key reactivity equivalent and fail fast.
51
+ */
52
+ export type QueryKeyInvalidationFilters = {
53
+ readonly queryKey: ReadonlyArray<unknown>;
54
+ };
55
+ export type InvalidationEntry = InvalidateQueryInstruction<QueryKeyInvalidationFilters>;
56
+ export type QueryInvalidationEffect<R = never> = (keys: ReadonlyArray<ReadonlyArray<unknown>>) => Effect.Effect<void, never, R>;
57
+ export interface QueryInvalidator<R = never> {
58
+ readonly invalidateAndAwait: QueryInvalidationEffect<R>;
59
+ readonly invalidateSoft?: QueryInvalidationEffect<R>;
60
+ }
61
+ export declare const atomQueryInvalidator: QueryInvalidator<Reactivity.Reactivity>;
62
+ export declare const combineQueryInvalidators: <R>(...invalidators: ReadonlyArray<QueryInvalidator<R>>) => QueryInvalidator<R>;
63
+ export interface MutationOptionsBase<A = unknown, B = A, E2 = never, R2 = never> {
19
64
  /**
20
65
  * By default we invalidate one level of the query key, e.g $project/$configuration.get, we invalidate $project.
21
- * This can be overridden by providing a function that returns an array of filters and options.
66
+ * This can be overridden by providing a function that returns an array of filters and options,
67
+ * or RPC handlers directly (their query keys are derived automatically).
68
+ *
69
+ * @example
70
+ * ```ts
71
+ * queryInvalidation: (queryKey) => [
72
+ * { filters: { queryKey } },
73
+ * GetMe,
74
+ * PackListIndex
75
+ * ]
76
+ * ```
22
77
  */
23
- queryInvalidation?: (defaultKey: string[], name: string) => {
24
- filters?: InvalidateQueryFilters | undefined;
25
- options?: InvalidateOptions | undefined;
26
- }[];
27
- }
28
- /** @deprecated prefer more basic @see MutationOptionsBase and separate useMutation from Command.fn */
29
- export interface MutationOptions<A, E, R, A2 = A, E2 = E, R2 = R, I = void> extends MutationOptionsBase {
78
+ queryInvalidation?: (defaultKey: string[], name: string, input?: unknown, output?: Exit.Exit<unknown, unknown>) => InvalidationEntry[];
30
79
  /**
31
- * Map the handler; cache invalidation is already done in this handler.
32
- * This is useful for e.g navigating, as you know caches have already updated.
80
+ * Run an additional Effect after the mutation succeeds. Its output becomes the
81
+ * final result returned to the caller. Query cache is invalidated once on
82
+ * mutation exit and again after this Effect completes. Useful for long-running
83
+ * operations (e.g. polling a background job) where you want the caller to
84
+ * receive the downstream result and the cache to refresh once it is ready.
33
85
  *
34
- * @deprecated use `Command.fn` instead of `useMutation*` with `mapHandler` option.
86
+ * @example
87
+ * ```ts
88
+ * useMutation(startExportCommand, {
89
+ * select: (result) => pollUntilDone(result.jobId)
90
+ * // caller receives the pollUntilDone output, not the original result
91
+ * })
92
+ * ```
35
93
  */
36
- mapHandler?: (handler: Effect.Effect<A, E, R>, input: I) => Effect.Effect<A2, E2, R2>;
94
+ select?: (result: A) => Effect.Effect<B, E2, R2>;
37
95
  }
38
- export declare const asResult: {
39
- <A, E, R>(handler: Effect.Effect<A, E, R>): readonly [ComputedRef<AsyncResult.AsyncResult<A, E>>, Effect.Effect<Exit.Exit<A, E>, never, R>];
40
- <Args extends readonly any[], A, E, R>(handler: (...args: Args) => Effect.Effect<A, E, R>): readonly [ComputedRef<AsyncResult.AsyncResult<A, E>>, (...args: Args) => Effect.Effect<Exit.Exit<A, E>, never, R>];
41
- };
42
- export declare const invalidateQueries: (queryClient: QueryClient, self: {
96
+ export declare const asResult: <Args extends readonly any[], A, E, R>(handler: (...args: Args) => Effect.Effect<A, E, R>) => readonly [ComputedRef<AsyncResult.AsyncResult<A, E>>, (...args: Args) => Effect.Effect<Exit.Exit<A, E>, never, R>];
97
+ /**
98
+ * Like `asResult`, but for streams. The ref is updated with each emitted value
99
+ * (keeping `waiting: true`) and is finalised (with `waiting: false`) once the
100
+ * stream terminates successfully. Errors are surfaced as `AsyncResult.failure`.
101
+ */
102
+ export declare const asStreamResult: <Args extends readonly any[], A, E, R>(handler: (...args: Args) => Stream.Stream<A, E, R>) => readonly [ComputedRef<AsyncResult.AsyncResult<A, E>>, (...args: Args) => Effect.Effect<void, never, R>];
103
+ export declare const invalidateQueries: <RInvalidator>(self: {
43
104
  id: string;
44
105
  options?: ClientForOptions;
45
- }, options?: MutationOptionsBase["queryInvalidation"]) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
46
- export declare const makeMutation: () => {
47
- <I, E, A, R, Request extends Req, Id extends string>(self: RequestHandlerWithInput<I, A, E, R, Request, Id>, options?: MutationOptionsBase): ((i: I) => Effect.Effect<A, E, R>) & {
48
- readonly id: Id;
49
- };
50
- <E, A, R, Request extends Req, Id extends string>(self: RequestHandler<A, E, R, Request, Id>, options?: MutationOptionsBase): Effect.Effect<A, E, R> & {
51
- readonly id: Id;
52
- };
53
- };
54
- export declare const useMakeMutation: () => {
55
- <I, E, A, R, Request extends Req, Id extends string>(self: RequestHandlerWithInput<I, A, E, R, Request, Id>, options?: MutationOptionsBase): ((i: I) => Effect.Effect<A, E, R>) & {
56
- readonly id: Id;
57
- };
58
- <E, A, R, Request extends Req, Id extends string>(self: RequestHandler<A, E, R, Request, Id>, options?: MutationOptionsBase): Effect.Effect<A, E, R> & {
59
- readonly id: Id;
60
- };
61
- };
106
+ disableQueryInvalidation?: boolean;
107
+ }, options: MutationOptionsBase | undefined, queryInvalidator: QueryInvalidator<RInvalidator>) => <A, E, R>(eff: Effect.Effect<A, E, R>, input?: unknown) => Effect.Effect<unknown, E, Exclude<RInvalidator, import("effect/Tracer").ParentSpan> | Exclude<Exclude<R, never>, never>>;
108
+ /**
109
+ * A callable mutation result. When `I = void` the input argument may be omitted.
110
+ */
111
+ export interface MutationFn<I, A, E, R, Id extends string> {
112
+ <B = A, E2 = never, R2 = never>(input: I, options?: MutationOptionsBase<A, B, E2, R2>): Effect.Effect<B, E | E2, R | R2>;
113
+ readonly id: Id;
114
+ }
115
+ export declare const makeMutation: <RInvalidator>(queryInvalidator: QueryInvalidator<RInvalidator>) => <I, E, A, R, Request extends Req, Id extends string>(self: RequestHandlerWithInput<I, A, E, R, Request, Id>) => MutationFn<I, A, E, R, Id>;
116
+ export declare const useMakeMutation: <RInvalidator>(queryInvalidator: QueryInvalidator<RInvalidator>) => <I, E, A, R, Request extends Req, Id extends string>(self: RequestHandlerWithInput<I, A, E, R, Request, Id>) => MutationFn<I, A, E, R, Id>;
117
+ /**
118
+ * Returns a stream-based mutation factory for use with `streamFn`.
119
+ * The outer Effect sets up per-invocation invalidation scaffolding
120
+ * and returns a stream that triggers query invalidation via `Stream.ensuring` when it completes.
121
+ *
122
+ * Use with `streamFn` / `Command.streamFn(id)(mutateHandler, ...combinators)` so that
123
+ * the command manages its own reactive state internally.
124
+ */
125
+ export declare const makeStreamMutation2: <RInvalidator>(queryInvalidator: QueryInvalidator<RInvalidator>) => (self: {
126
+ id: string;
127
+ options?: ClientForOptions;
128
+ disableQueryInvalidation?: boolean;
129
+ handler: (i: any) => Stream.Stream<any, any, any>;
130
+ }, mergedInvalidation?: MutationOptionsBase["queryInvalidation"]) => (i: any) => Stream.Stream<any, any, any>;
62
131
  //# sourceMappingURL=mutate.d.ts.map
@@ -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":"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"}