@effect-app/vue 2.55.9 → 2.56.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.
@@ -1,15 +1,19 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import * as Result from "@effect-atom/atom/Result";
3
3
  import { isCancelledError } from "@tanstack/vue-query";
4
- import { Cause, Effect, Exit, Match, Option, Runtime, S, Struct } from "effect-app";
4
+ import { Cause, Effect, Exit, Layer, ManagedRuntime, Match, Option, Runtime, S, Struct } from "effect-app";
5
5
  import { ErrorSilenced } from "effect-app/client/errors";
6
6
  import { constant, pipe, tuple } from "effect-app/Function";
7
7
  import { OperationSuccess } from "effect-app/Operations";
8
8
  import { dropUndefinedT } from "effect-app/utils";
9
- import { computed, onBeforeUnmount, ref, watch } from "vue";
9
+ import { computed, getCurrentInstance, onBeforeUnmount, onUnmounted, ref, shallowRef, watch } from "vue";
10
10
  import { reportMessage } from "./errorReporter.js";
11
+ import { Commander } from "./experimental/commander.js";
12
+ import { I18n } from "./experimental/intl.js";
13
+ import { makeUseCommand } from "./experimental/makeUseCommand.js";
14
+ import { Toast } from "./experimental/toast.js";
11
15
  import { buildFieldInfoFromFieldsRoot } from "./form.js";
12
- import { getRuntime, reportRuntimeError } from "./lib.js";
16
+ import { reportRuntimeError } from "./lib.js";
13
17
  import { asResult, makeMutation, mutationResultToVue } from "./mutate.js";
14
18
  import { makeQuery } from "./query.js";
15
19
  const tapHandler = (handler, map) => Effect.isEffect(handler) ? map(handler) : (i) => map(handler(i));
@@ -52,224 +56,252 @@ function handleRequest(f, name, action, options) {
52
56
  ? pipe(f, handleEffect(void 0))
53
57
  : (i) => pipe(f(i), handleEffect(i)), { action });
54
58
  }
55
- export const makeClient = (
56
- // NOTE: underscores to not collide with auto exports in nuxt apps
57
- _useIntl, _useToast, runtime, messages = {}) => {
58
- // making sure names do not collide with auto exports in nuxt apps, please do not rename..
59
- /**
60
- * Effect results are passed to the caller, including errors.
61
- */
62
- const _useUnsafeMutation = makeMutation();
63
- const _useSafeQuery = makeQuery(runtime);
64
- const __useUnsafeMutation = (self, options) => tapHandler(_useUnsafeMutation(self, options), Effect.withSpan(`mutation ${self.name}`, { captureStackTrace: false }));
65
- /**
66
- * Effect results are converted to Exit, so errors are ignored by default.
67
- * you should use the result ref to render errors!
68
- */
69
- const _useSafeMutation = (self, options) => {
70
- const unsafe = _useUnsafeMutation(self, options);
71
- const [a, b] = asResult(tapHandler(unsafe, Effect.tapDefect(reportRuntimeError)));
72
- return [
73
- a,
74
- tapHandler(b, Effect.withSpan(`mutation ${self.name}`, { captureStackTrace: false }))
75
- ];
76
- };
77
- const _useHandleRequestWithToast = () => {
78
- const toast = _useToast();
79
- const { intl } = _useIntl();
80
- return handleRequestWithToast;
81
- /**
82
- * Pass a function that returns a Promise.
83
- * Returns an execution function which reports errors as Toast.
84
- */
85
- function handleRequestWithToast(f, name, action, options = {}) {
86
- const actionMessage = messages[action] ?? action;
87
- const defaultWarnMessage = intl.formatMessage({ id: "handle.with_warnings" }, { action: actionMessage });
88
- const defaultSuccessMessage = intl.formatMessage({ id: "handle.success" }, { action: actionMessage });
89
- const defaultErrorMessage = intl.formatMessage({ id: "handle.with_errors" }, { action: actionMessage });
90
- return handleRequest(f, name, action, {
91
- onSuccess: Effect.fnUntraced(function* (a, i) {
92
- const message = options.successMessage ? yield* options.successMessage(a, i) : defaultSuccessMessage
93
- + (S.is(OperationSuccess)(a) && a.message
94
- ? "\n" + a.message
95
- : "");
96
- if (message) {
97
- toast.success(message);
98
- }
99
- }),
100
- onFail: Effect.fnUntraced(function* (e, i) {
101
- if (!options.failMessage && e._tag === "OperationFailure") {
102
- toast.warning(defaultWarnMessage + e.message
103
- ? "\n" + e.message
104
- : "");
105
- return;
106
- }
107
- const message = options.failMessage
108
- ? yield* options.failMessage(e, i)
109
- : `${defaultErrorMessage}:\n` + renderError(e);
110
- if (message) {
111
- toast.error(message);
59
+ const _useUnsafeMutation = makeMutation();
60
+ export const useUnsafeMutation = (self, options) => tapHandler(_useUnsafeMutation(self, options), Effect.withSpan(`mutation ${self.name}`, { captureStackTrace: false }));
61
+ // @effect-diagnostics-next-line missingEffectServiceDependency:off
62
+ export class LegacyMutation extends Effect.Service()("LegacyMutation", {
63
+ effect: Effect.gen(function* () {
64
+ const intl = yield* I18n;
65
+ const toast = yield* Toast;
66
+ return (runtime) => {
67
+ /**
68
+ * Effect results are converted to Exit, so errors are ignored by default.
69
+ * you should use the result ref to render errors!
70
+ */
71
+ const _useSafeMutation = (self, options) => {
72
+ const unsafe = _useUnsafeMutation(self, options);
73
+ const [a, b] = asResult(tapHandler(unsafe, Effect.tapDefect(reportRuntimeError)));
74
+ return [
75
+ a,
76
+ tapHandler(b, Effect.withSpan(`mutation ${self.name}`, { captureStackTrace: false }))
77
+ ];
78
+ };
79
+ const _useHandleRequestWithToast = () => {
80
+ return handleRequestWithToast;
81
+ /**
82
+ * Pass a function that returns a Promise.
83
+ * Returns an execution function which reports errors as Toast.
84
+ */
85
+ function handleRequestWithToast(f, name, action, options = {}) {
86
+ const actionMessage = intl.formatMessage({ id: `action.${action}`, defaultMessage: action });
87
+ const defaultWarnMessage = intl.formatMessage({ id: "handle.with_warnings" }, { action: actionMessage });
88
+ const defaultSuccessMessage = intl.formatMessage({ id: "handle.success" }, { action: actionMessage });
89
+ const defaultErrorMessage = intl.formatMessage({ id: "handle.with_errors" }, { action: actionMessage });
90
+ return handleRequest(f, name, action, {
91
+ onSuccess: Effect.fnUntraced(function* (a, i) {
92
+ const message = options.successMessage ? yield* options.successMessage(a, i) : defaultSuccessMessage
93
+ + (S.is(OperationSuccess)(a) && a.message
94
+ ? "\n" + a.message
95
+ : "");
96
+ if (message) {
97
+ yield* toast.success(message);
98
+ }
99
+ }),
100
+ onFail: Effect.fnUntraced(function* (e, i) {
101
+ if (!options.failMessage && e._tag === "OperationFailure") {
102
+ yield* toast.warning(defaultWarnMessage + e.message
103
+ ? "\n" + e.message
104
+ : "");
105
+ return;
106
+ }
107
+ const message = options.failMessage
108
+ ? yield* options.failMessage(e, i)
109
+ : `${defaultErrorMessage}:\n` + renderError(e);
110
+ if (message) {
111
+ yield* toast.error(message);
112
+ }
113
+ }),
114
+ onDefect: Effect.fnUntraced(function* (cause, i) {
115
+ const message = options.defectMessage
116
+ ? yield* options.defectMessage(cause, i)
117
+ : intl.formatMessage({ id: "handle.unexpected_error" }, {
118
+ action: actionMessage,
119
+ error: Cause.pretty(cause)
120
+ });
121
+ if (message) {
122
+ yield* toast.error(message);
123
+ }
124
+ })
125
+ });
126
+ }
127
+ function renderError(e) {
128
+ return Match.value(e).pipe(Match.tags({
129
+ // HttpErrorRequest: e =>
130
+ // intl.value.formatMessage(
131
+ // { id: "handle.request_error" },
132
+ // { error: `${e.error}` },
133
+ // ),
134
+ // HttpErrorResponse: e =>
135
+ // e.response.status >= 500 ||
136
+ // e.response.body._tag !== "Some" ||
137
+ // !e.response.body.value
138
+ // ? intl.value.formatMessage(
139
+ // { id: "handle.error_response" },
140
+ // {
141
+ // error: `${
142
+ // e.response.body._tag === "Some" && e.response.body.value
143
+ // ? parseError(e.response.body.value)
144
+ // : "Unknown"
145
+ // } (${e.response.status})`,
146
+ // },
147
+ // )
148
+ // : intl.value.formatMessage(
149
+ // { id: "handle.unexpected_error" },
150
+ // {
151
+ // error:
152
+ // JSON.stringify(e.response.body, undefined, 2) +
153
+ // "( " +
154
+ // e.response.status +
155
+ // ")",
156
+ // },
157
+ // ),
158
+ // ResponseError: e =>
159
+ // intl.value.formatMessage(
160
+ // { id: "handle.response_error" },
161
+ // { error: `${e.error}` },
162
+ // ),
163
+ ParseError: (e) => {
164
+ console.warn(e.toString());
165
+ return intl.formatMessage({ id: "validation.failed" });
166
+ }
167
+ }), Match.orElse((e) => `${e.message ?? e._tag ?? e}`));
168
+ }
169
+ };
170
+ /**
171
+ * Pass a function that returns an Effect, e.g from a client action, give it a name.
172
+ * Returns a tuple with raw Result and execution function which reports success and errors as Toast.
173
+ */
174
+ const _useAndHandleMutationResult = (self, action, options) => {
175
+ const handleRequestWithToast = _useHandleRequestWithToast();
176
+ const handler = self.handler;
177
+ const [a, b] = asResult(_useUnsafeMutation({
178
+ ...self,
179
+ handler: Effect.isEffect(handler)
180
+ ? pipe(Effect.annotateCurrentSpan({ action }), Effect.zipRight(handler))
181
+ : (...args) => pipe(Effect.annotateCurrentSpan({ action }), Effect.zipRight(handler(...args)))
182
+ }, options ? dropUndefinedT(options) : undefined));
183
+ return tuple(a, handleRequestWithToast(b, self.name, action, options));
184
+ };
185
+ //
186
+ /**
187
+ * Pass a function that returns an Effect, e.g from a client action, give it a name.
188
+ * Returns a tuple with state ref and execution function which reports success and errors as Toast.
189
+ */
190
+ const _useAndHandleMutation = (self, action, options) => {
191
+ const [a, b] = _useAndHandleMutationResult(self, action, options);
192
+ return tuple(computed(() => mutationResultToVue(a.value)), b);
193
+ };
194
+ function _makeUseAndHandleMutation(defaultOptions) {
195
+ return ((self, action, options) => {
196
+ return _useAndHandleMutation(self, action, { ...defaultOptions, ...options });
197
+ });
198
+ }
199
+ /**
200
+ * The same as @see useAndHandleMutation, but does not display any toasts by default.
201
+ * Messages for success, error and defect toasts can be provided in the Options.
202
+ */
203
+ const _useAndHandleMutationSilently = _makeUseAndHandleMutation({
204
+ successMessage: suppressToast,
205
+ failMessage: suppressToast,
206
+ defectMessage: suppressToast
207
+ });
208
+ /**
209
+ * The same as @see useAndHandleMutation, but does not act on success, error or defect by default.
210
+ * Actions for success, error and defect can be provided in the Options.
211
+ */
212
+ const _useAndHandleMutationCustom = (self, action, options) => {
213
+ const [a, b] = asResult(_useUnsafeMutation({
214
+ ...self,
215
+ handler: Effect.isEffect(self.handler)
216
+ ? pipe(Effect.annotateCurrentSpan({ action }), Effect.andThen(self.handler))
217
+ : (...args) => pipe(Effect.annotateCurrentSpan({ action }), Effect.andThen(self.handler(...args)))
218
+ }, options ? dropUndefinedT(options) : undefined));
219
+ return tuple(computed(() => mutationResultToVue(a.value)), handleRequest(b, self.name, action, {
220
+ onSuccess: suppressToast,
221
+ onDefect: suppressToast,
222
+ onFail: suppressToast,
223
+ ...options
224
+ }));
225
+ };
226
+ /**
227
+ * Effect results are converted to Exit, so errors are ignored by default.
228
+ * you should use the result ref to render errors!
229
+ */
230
+ const _useSafeMutationWithState = (self, options) => {
231
+ const [a, b] = _useSafeMutation(self, options);
232
+ return tuple(computed(() => mutationResultToVue(a.value)), b);
233
+ };
234
+ /** @deprecated use OmegaForm */
235
+ const _buildFormFromSchema = (s, state, onSubmit) => {
236
+ const fields = buildFieldInfoFromFieldsRoot(s).fields;
237
+ const schema = S.Struct(Struct.omit(s.fields, "_tag"));
238
+ const parse = S.decodeUnknown(schema);
239
+ const isDirty = ref(false);
240
+ const isValid = ref(true);
241
+ const isLoading = ref(false);
242
+ const runPromise = Runtime.runPromise(runtime);
243
+ const submit1 = (onSubmit) => async (e) => {
244
+ isLoading.value = true;
245
+ try {
246
+ const r = await e;
247
+ if (!r.valid)
248
+ return;
249
+ return await runPromise(onSubmit(new s(await runPromise(parse(state.value)))));
112
250
  }
113
- }),
114
- onDefect: Effect.fnUntraced(function* (cause, i) {
115
- const message = options.defectMessage
116
- ? yield* options.defectMessage(cause, i)
117
- : intl.formatMessage({ id: "handle.unexpected_error" }, {
118
- action: actionMessage,
119
- error: Cause.pretty(cause)
120
- });
121
- if (message) {
122
- toast.error(message);
251
+ finally {
252
+ isLoading.value = false;
123
253
  }
124
- })
125
- });
126
- }
127
- function renderError(e) {
128
- return Match.value(e).pipe(Match.tags({
129
- // HttpErrorRequest: e =>
130
- // intl.value.formatMessage(
131
- // { id: "handle.request_error" },
132
- // { error: `${e.error}` },
133
- // ),
134
- // HttpErrorResponse: e =>
135
- // e.response.status >= 500 ||
136
- // e.response.body._tag !== "Some" ||
137
- // !e.response.body.value
138
- // ? intl.value.formatMessage(
139
- // { id: "handle.error_response" },
140
- // {
141
- // error: `${
142
- // e.response.body._tag === "Some" && e.response.body.value
143
- // ? parseError(e.response.body.value)
144
- // : "Unknown"
145
- // } (${e.response.status})`,
146
- // },
147
- // )
148
- // : intl.value.formatMessage(
149
- // { id: "handle.unexpected_error" },
150
- // {
151
- // error:
152
- // JSON.stringify(e.response.body, undefined, 2) +
153
- // "( " +
154
- // e.response.status +
155
- // ")",
156
- // },
157
- // ),
158
- // ResponseError: e =>
159
- // intl.value.formatMessage(
160
- // { id: "handle.response_error" },
161
- // { error: `${e.error}` },
162
- // ),
163
- ParseError: (e) => {
164
- console.warn(e.toString());
165
- return intl.formatMessage({ id: "validation.failed" });
166
- }
167
- }), Match.orElse((e) => `${e.message ?? e._tag ?? e}`));
168
- }
169
- };
170
- /**
171
- * Pass a function that returns an Effect, e.g from a client action, give it a name.
172
- * Returns a tuple with raw Result and execution function which reports success and errors as Toast.
173
- */
174
- const _useAndHandleMutationResult = (self, action, options) => {
175
- const handleRequestWithToast = _useHandleRequestWithToast();
176
- const handler = self.handler;
177
- const [a, b] = asResult(_useUnsafeMutation({
178
- ...self,
179
- handler: Effect.isEffect(handler)
180
- ? pipe(Effect.annotateCurrentSpan({ action }), Effect.zipRight(handler))
181
- : (...args) => pipe(Effect.annotateCurrentSpan({ action }), Effect.zipRight(handler(...args)))
182
- }, options ? dropUndefinedT(options) : undefined));
183
- return tuple(a, handleRequestWithToast(b, self.name, action, options));
184
- };
185
- //
186
- /**
187
- * Pass a function that returns an Effect, e.g from a client action, give it a name.
188
- * Returns a tuple with state ref and execution function which reports success and errors as Toast.
189
- */
190
- const _useAndHandleMutation = (self, action, options) => {
191
- const [a, b] = _useAndHandleMutationResult(self, action, options);
192
- return tuple(computed(() => mutationResultToVue(a.value)), b);
193
- };
194
- function _makeUseAndHandleMutation(defaultOptions) {
195
- return ((self, action, options) => {
196
- return _useAndHandleMutation(self, action, { ...defaultOptions, ...options });
197
- });
198
- }
199
- /**
200
- * The same as @see useAndHandleMutation, but does not display any toasts by default.
201
- * Messages for success, error and defect toasts can be provided in the Options.
202
- */
203
- const _useAndHandleMutationSilently = _makeUseAndHandleMutation({
204
- successMessage: suppressToast,
205
- failMessage: suppressToast,
206
- defectMessage: suppressToast
207
- });
208
- /**
209
- * The same as @see useAndHandleMutation, but does not act on success, error or defect by default.
210
- * Actions for success, error and defect can be provided in the Options.
211
- */
212
- const _useAndHandleMutationCustom = (self, action, options) => {
213
- const [a, b] = asResult(_useUnsafeMutation({
214
- ...self,
215
- handler: Effect.isEffect(self.handler)
216
- ? pipe(Effect.annotateCurrentSpan({ action }), Effect.andThen(self.handler))
217
- : (...args) => pipe(Effect.annotateCurrentSpan({ action }), Effect.andThen(self.handler(...args)))
218
- }, options ? dropUndefinedT(options) : undefined));
219
- return tuple(computed(() => mutationResultToVue(a.value)), handleRequest(b, self.name, action, {
220
- onSuccess: suppressToast,
221
- onDefect: suppressToast,
222
- onFail: suppressToast,
223
- ...options
224
- }));
225
- };
254
+ };
255
+ const submit = submit1(onSubmit);
256
+ watch(state, (v) => {
257
+ // TODO: do better
258
+ isDirty.value = JSON.stringify(v) !== JSON.stringify(state.value);
259
+ }, { deep: true });
260
+ const submitFromState = Effect.gen(function* () {
261
+ return yield* onSubmit(yield* parse(state.value));
262
+ });
263
+ return {
264
+ fields,
265
+ /** optimized for Vuetify v-form submit callback */
266
+ submit,
267
+ /** optimized for Native form submit callback or general use */
268
+ submitFromState,
269
+ isDirty,
270
+ isValid,
271
+ isLoading
272
+ };
273
+ };
274
+ return {
275
+ /** @deprecated use Command.fn */
276
+ useSafeMutationWithState: _useSafeMutationWithState,
277
+ /** @deprecated use Command.fn */
278
+ useAndHandleMutation: _useAndHandleMutation,
279
+ /** @deprecated use Command.fn */
280
+ useAndHandleMutationResult: _useAndHandleMutationResult,
281
+ /** @deprecated use Command.fn */
282
+ useAndHandleMutationSilently: _useAndHandleMutationSilently,
283
+ /** @deprecated use Command.fn */
284
+ useAndHandleMutationCustom: _useAndHandleMutationCustom,
285
+ /** @deprecated use Command.fn */
286
+ makeUseAndHandleMutation: _makeUseAndHandleMutation,
287
+ /** @deprecated use Command.fn */
288
+ useHandleRequestWithToast: _useHandleRequestWithToast,
289
+ /** @deprecated use OmegaForm */
290
+ buildFormFromSchema: _buildFormFromSchema,
291
+ /** @deprecated use Command.fn */
292
+ useSafeMutation: _useSafeMutation
293
+ };
294
+ };
295
+ })
296
+ }) {
297
+ }
298
+ const mkQuery = (runtime) => {
299
+ // making sure names do not collide with auto exports in nuxt apps, please do not rename..
226
300
  /**
227
- * Effect results are converted to Exit, so errors are ignored by default.
228
- * you should use the result ref to render errors!
301
+ * Effect results are passed to the caller, including errors.
229
302
  */
230
- const _useSafeMutationWithState = (self, options) => {
231
- const [a, b] = _useSafeMutation(self, options);
232
- return tuple(computed(() => mutationResultToVue(a.value)), b);
233
- };
234
- const _buildFormFromSchema = (s, state, onSubmit) => {
235
- const fields = buildFieldInfoFromFieldsRoot(s).fields;
236
- const schema = S.Struct(Struct.omit(s.fields, "_tag"));
237
- const parse = S.decodeUnknown(schema);
238
- const isDirty = ref(false);
239
- const isValid = ref(true);
240
- const isLoading = ref(false);
241
- const runPromise = Runtime.runPromise(getRuntime(runtime));
242
- const submit1 = (onSubmit) => async (e) => {
243
- isLoading.value = true;
244
- try {
245
- const r = await e;
246
- if (!r.valid)
247
- return;
248
- return await runPromise(onSubmit(new s(await runPromise(parse(state.value)))));
249
- }
250
- finally {
251
- isLoading.value = false;
252
- }
253
- };
254
- const submit = submit1(onSubmit);
255
- watch(state, (v) => {
256
- // TODO: do better
257
- isDirty.value = JSON.stringify(v) !== JSON.stringify(state.value);
258
- }, { deep: true });
259
- const submitFromState = Effect.gen(function* () {
260
- return yield* onSubmit(yield* parse(state.value));
261
- });
262
- return {
263
- fields,
264
- /** optimized for Vuetify v-form submit callback */
265
- submit,
266
- /** optimized for Native form submit callback or general use */
267
- submitFromState,
268
- isDirty,
269
- isValid,
270
- isLoading
271
- };
272
- };
303
+ // TODO
304
+ const _useSafeQuery = makeQuery(shallowRef(runtime));
273
305
  function useSafeSuspenseQuery(self, argOrOptions, options) {
274
306
  const [resultRef, latestRef, fetch, uqrt] = _useSafeQuery(self, argOrOptions, { ...options, suspense: true } // experimental_prefetchInRender: true }
275
307
  );
@@ -307,19 +339,67 @@ _useIntl, _useToast, runtime, messages = {}) => {
307
339
  return [resultRef, latestRef, fetch, uqrt];
308
340
  });
309
341
  }
342
+ return { useSafeQuery: _useSafeQuery, useSafeSuspenseQuery };
343
+ };
344
+ export const makeClient = (baseMrt, rootLayer) => {
345
+ const baseRt = Effect.runSync(baseMrt.runtimeEffect);
346
+ const getRt = () => {
347
+ const instance = getCurrentInstance();
348
+ if (!instance.__effa) {
349
+ const rt = ManagedRuntime.make(rootLayer, baseMrt.memoMap);
350
+ instance.__effa = { rt, rts: new Map() };
351
+ onUnmounted(() => rt.dispose());
352
+ }
353
+ return instance.__effa;
354
+ };
355
+ const makeRuntime = (l) => {
356
+ const ctx = getRt();
357
+ const rt = ManagedRuntime.make(Layer.mergeAll(l.pipe(Layer.provide(rootLayer)), rootLayer), ctx.rt.memoMap);
358
+ onUnmounted(() => rt.dispose());
359
+ return rt;
360
+ };
361
+ const get = (key, maker) => {
362
+ const ctx = getRt();
363
+ const existing = ctx.rts.get(key);
364
+ if (existing) {
365
+ return existing;
366
+ }
367
+ const made = maker();
368
+ ctx.rts.set(key, made);
369
+ return made;
370
+ };
371
+ // const getQuery = () => get("query", LegacyQuery.Default)
372
+ const getMutation = () => get("mutation", () => {
373
+ const mrt = makeRuntime(LegacyMutation.Default);
374
+ const mut = mrt.runSync(LegacyMutation);
375
+ const rt = Effect.runSync(mrt.runtimeEffect);
376
+ return mut(rt);
377
+ });
378
+ const useCommand = () => get("command", () => {
379
+ const mrt = makeRuntime(Commander.Default);
380
+ const cmd = mrt.runSync(makeUseCommand());
381
+ return cmd;
382
+ });
383
+ const keys = [
384
+ "useSafeMutationWithState",
385
+ "useAndHandleMutation",
386
+ "useAndHandleMutationResult",
387
+ "useAndHandleMutationSilently",
388
+ "useAndHandleMutationCustom",
389
+ "makeUseAndHandleMutation",
390
+ "useHandleRequestWithToast",
391
+ "buildFormFromSchema",
392
+ "useSafeMutation"
393
+ ];
310
394
  return {
311
- useSafeMutationWithState: _useSafeMutationWithState,
312
- useAndHandleMutation: _useAndHandleMutation,
313
- useAndHandleMutationResult: _useAndHandleMutationResult,
314
- useAndHandleMutationSilently: _useAndHandleMutationSilently,
315
- useAndHandleMutationCustom: _useAndHandleMutationCustom,
316
- makeUseAndHandleMutation: _makeUseAndHandleMutation,
317
- useHandleRequestWithToast: _useHandleRequestWithToast,
318
- buildFormFromSchema: _buildFormFromSchema,
319
- useSafeQuery: _useSafeQuery,
320
- useSafeMutation: _useSafeMutation,
321
- useUnsafeMutation: __useUnsafeMutation,
322
- useSafeSuspenseQuery
395
+ useCommand,
396
+ ...mkQuery(baseRt),
397
+ ...keys.reduce((prev, cur) => {
398
+ prev[cur] = ((...args) => {
399
+ return getMutation()[cur](...args);
400
+ });
401
+ return prev;
402
+ }, {})
323
403
  };
324
404
  };
325
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWtlQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssTUFBTSxNQUFNLDBCQUEwQixDQUFBO0FBQ2xELE9BQU8sRUFBNEIsZ0JBQWdCLEVBQTBFLE1BQU0scUJBQXFCLENBQUE7QUFDeEosT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFbkYsT0FBTyxFQUFFLGFBQWEsRUFBd0IsTUFBTSwwQkFBMEIsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUMzRCxPQUFPLEVBQXlCLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQW9CLGVBQWUsRUFBWSxHQUFHLEVBQW1CLEtBQUssRUFBb0IsTUFBTSxLQUFLLENBQUE7QUFDMUgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRXpELE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUF3QixtQkFBbUIsRUFBWSxNQUFNLGFBQWEsQ0FBQTtBQUN6RyxPQUFPLEVBQTBCLFNBQVMsRUFBbUMsTUFBTSxZQUFZLENBQUE7QUFFL0YsTUFBTSxVQUFVLEdBQUcsQ0FDakIsT0FBb0UsRUFDcEUsR0FBNkQsRUFDN0QsRUFBRSxDQUFDLE1BQU0s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
405
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWtlQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssTUFBTSxNQUFNLDBCQUEwQixDQUFBO0FBQ2xELE9BQU8sRUFBNEIsZ0JBQWdCLEVBQTBFLE1BQU0scUJBQXFCLENBQUE7QUFDeEosT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUUxRyxPQUFPLEVBQUUsYUFBYSxFQUF3QixNQUFNLDBCQUEwQixDQUFBO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzNELE9BQU8sRUFBeUIsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUUvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBb0Isa0JBQWtCLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBWSxHQUFHLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBb0IsTUFBTSxLQUFLLENBQUE7QUFDdEosT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFD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