@zenstackhq/tanstack-query 1.0.0-beta.1 → 1.0.0-beta.11
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/generator.d.ts +1 -1
- package/generator.js +31 -39
- package/generator.js.map +1 -1
- package/package.json +33 -14
- package/runtime/common-52ab2c3a.d.ts +19 -0
- package/runtime/index.d.mts +7 -0
- package/runtime/index.d.ts +7 -0
- package/runtime/index.js +19 -0
- package/runtime/index.js.map +1 -0
- package/runtime/index.mjs +1 -0
- package/runtime/index.mjs.map +1 -0
- package/runtime/react.d.mts +55 -0
- package/runtime/react.d.ts +55 -0
- package/runtime/react.js +216 -0
- package/runtime/react.js.map +1 -0
- package/runtime/react.mjs +193 -0
- package/runtime/react.mjs.map +1 -0
- package/runtime/svelte.d.mts +51 -0
- package/runtime/svelte.d.ts +51 -0
- package/runtime/svelte.js +208 -0
- package/runtime/svelte.js.map +1 -0
- package/runtime/svelte.mjs +186 -0
- package/runtime/svelte.mjs.map +1 -0
- package/res/marshal-json.ts +0 -12
- package/res/marshal-superjson.ts +0 -20
- package/res/react/helper.ts +0 -148
- package/res/shared.ts +0 -36
- package/res/svelte/helper.ts +0 -140
package/runtime/react.js
ADDED
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
10
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
11
|
+
var __spreadValues = (a, b) => {
|
|
12
|
+
for (var prop in b || (b = {}))
|
|
13
|
+
if (__hasOwnProp.call(b, prop))
|
|
14
|
+
__defNormalProp(a, prop, b[prop]);
|
|
15
|
+
if (__getOwnPropSymbols)
|
|
16
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
17
|
+
if (__propIsEnum.call(b, prop))
|
|
18
|
+
__defNormalProp(a, prop, b[prop]);
|
|
19
|
+
}
|
|
20
|
+
return a;
|
|
21
|
+
};
|
|
22
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
23
|
+
var __export = (target, all) => {
|
|
24
|
+
for (var name in all)
|
|
25
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
26
|
+
};
|
|
27
|
+
var __copyProps = (to, from, except, desc) => {
|
|
28
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
29
|
+
for (let key of __getOwnPropNames(from))
|
|
30
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
31
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
32
|
+
}
|
|
33
|
+
return to;
|
|
34
|
+
};
|
|
35
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
36
|
+
var __async = (__this, __arguments, generator) => {
|
|
37
|
+
return new Promise((resolve, reject) => {
|
|
38
|
+
var fulfilled = (value) => {
|
|
39
|
+
try {
|
|
40
|
+
step(generator.next(value));
|
|
41
|
+
} catch (e) {
|
|
42
|
+
reject(e);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var rejected = (value) => {
|
|
46
|
+
try {
|
|
47
|
+
step(generator.throw(value));
|
|
48
|
+
} catch (e) {
|
|
49
|
+
reject(e);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
53
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
// src/runtime/react.ts
|
|
58
|
+
var react_exports = {};
|
|
59
|
+
__export(react_exports, {
|
|
60
|
+
Provider: () => Provider,
|
|
61
|
+
RequestHandlerContext: () => RequestHandlerContext,
|
|
62
|
+
deleteMutation: () => deleteMutation,
|
|
63
|
+
postMutation: () => postMutation,
|
|
64
|
+
putMutation: () => putMutation,
|
|
65
|
+
query: () => query
|
|
66
|
+
});
|
|
67
|
+
module.exports = __toCommonJS(react_exports);
|
|
68
|
+
var import_react_query = require("@tanstack/react-query");
|
|
69
|
+
var import_react = require("react");
|
|
70
|
+
|
|
71
|
+
// src/runtime/common.ts
|
|
72
|
+
var import_browser = require("@zenstackhq/runtime/browser");
|
|
73
|
+
var DEFAULT_QUERY_ENDPOINT = "/api/model";
|
|
74
|
+
var QUERY_KEY_PREFIX = "zenstack:";
|
|
75
|
+
function fetcher(url, options, fetch, checkReadBack) {
|
|
76
|
+
return __async(this, null, function* () {
|
|
77
|
+
var _a, _b, _c;
|
|
78
|
+
const _fetch = fetch != null ? fetch : window.fetch;
|
|
79
|
+
const res = yield _fetch(url, options);
|
|
80
|
+
if (!res.ok) {
|
|
81
|
+
const errData = unmarshal(yield res.text());
|
|
82
|
+
if (checkReadBack !== false && ((_a = errData.error) == null ? void 0 : _a.prisma) && ((_b = errData.error) == null ? void 0 : _b.code) === "P2004" && ((_c = errData.error) == null ? void 0 : _c.reason) === "RESULT_NOT_READABLE") {
|
|
83
|
+
return void 0;
|
|
84
|
+
}
|
|
85
|
+
const error = new Error(
|
|
86
|
+
"An error occurred while fetching the data."
|
|
87
|
+
);
|
|
88
|
+
error.info = errData.error;
|
|
89
|
+
error.status = res.status;
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
92
|
+
const textResult = yield res.text();
|
|
93
|
+
try {
|
|
94
|
+
return unmarshal(textResult).data;
|
|
95
|
+
} catch (err) {
|
|
96
|
+
console.error(`Unable to deserialize data:`, textResult);
|
|
97
|
+
throw err;
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
function marshal(value) {
|
|
102
|
+
const { data, meta } = (0, import_browser.serialize)(value);
|
|
103
|
+
if (meta) {
|
|
104
|
+
return JSON.stringify(__spreadProps(__spreadValues({}, data), { meta: { serialization: meta } }));
|
|
105
|
+
} else {
|
|
106
|
+
return JSON.stringify(data);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function unmarshal(value) {
|
|
110
|
+
var _a;
|
|
111
|
+
const parsed = JSON.parse(value);
|
|
112
|
+
if (parsed.data && ((_a = parsed.meta) == null ? void 0 : _a.serialization)) {
|
|
113
|
+
const deserializedData = (0, import_browser.deserialize)(parsed.data, parsed.meta.serialization);
|
|
114
|
+
return __spreadProps(__spreadValues({}, parsed), { data: deserializedData });
|
|
115
|
+
} else {
|
|
116
|
+
return parsed;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function makeUrl(url, args) {
|
|
120
|
+
if (!args) {
|
|
121
|
+
return url;
|
|
122
|
+
}
|
|
123
|
+
const { data, meta } = (0, import_browser.serialize)(args);
|
|
124
|
+
let result = `${url}?q=${encodeURIComponent(JSON.stringify(data))}`;
|
|
125
|
+
if (meta) {
|
|
126
|
+
result += `&meta=${encodeURIComponent(JSON.stringify({ serialization: meta }))}`;
|
|
127
|
+
}
|
|
128
|
+
return result;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// src/runtime/react.ts
|
|
132
|
+
var RequestHandlerContext = (0, import_react.createContext)({
|
|
133
|
+
endpoint: DEFAULT_QUERY_ENDPOINT,
|
|
134
|
+
fetch: void 0
|
|
135
|
+
});
|
|
136
|
+
var Provider = RequestHandlerContext.Provider;
|
|
137
|
+
function query(model, url, args, options, fetch) {
|
|
138
|
+
const reqUrl = makeUrl(url, args);
|
|
139
|
+
return (0, import_react_query.useQuery)(__spreadValues({
|
|
140
|
+
queryKey: [QUERY_KEY_PREFIX + model, url, args],
|
|
141
|
+
queryFn: () => fetcher(reqUrl, void 0, fetch, false)
|
|
142
|
+
}, options));
|
|
143
|
+
}
|
|
144
|
+
function postMutation(model, url, options, fetch, invalidateQueries = true, checkReadBack) {
|
|
145
|
+
const queryClient = (0, import_react_query.useQueryClient)();
|
|
146
|
+
const mutationFn = (data) => fetcher(
|
|
147
|
+
url,
|
|
148
|
+
{
|
|
149
|
+
method: "POST",
|
|
150
|
+
headers: {
|
|
151
|
+
"content-type": "application/json"
|
|
152
|
+
},
|
|
153
|
+
body: marshal(data)
|
|
154
|
+
},
|
|
155
|
+
fetch,
|
|
156
|
+
checkReadBack
|
|
157
|
+
);
|
|
158
|
+
const finalOptions = mergeOptions(model, options, invalidateQueries, mutationFn, queryClient);
|
|
159
|
+
const mutation = (0, import_react_query.useMutation)(finalOptions);
|
|
160
|
+
return mutation;
|
|
161
|
+
}
|
|
162
|
+
function putMutation(model, url, options, fetch, invalidateQueries = true, checkReadBack) {
|
|
163
|
+
const queryClient = (0, import_react_query.useQueryClient)();
|
|
164
|
+
const mutationFn = (data) => fetcher(
|
|
165
|
+
url,
|
|
166
|
+
{
|
|
167
|
+
method: "PUT",
|
|
168
|
+
headers: {
|
|
169
|
+
"content-type": "application/json"
|
|
170
|
+
},
|
|
171
|
+
body: marshal(data)
|
|
172
|
+
},
|
|
173
|
+
fetch,
|
|
174
|
+
checkReadBack
|
|
175
|
+
);
|
|
176
|
+
const finalOptions = mergeOptions(model, options, invalidateQueries, mutationFn, queryClient);
|
|
177
|
+
const mutation = (0, import_react_query.useMutation)(finalOptions);
|
|
178
|
+
return mutation;
|
|
179
|
+
}
|
|
180
|
+
function deleteMutation(model, url, options, fetch, invalidateQueries = true, checkReadBack) {
|
|
181
|
+
const queryClient = (0, import_react_query.useQueryClient)();
|
|
182
|
+
const mutationFn = (data) => fetcher(
|
|
183
|
+
makeUrl(url, data),
|
|
184
|
+
{
|
|
185
|
+
method: "DELETE"
|
|
186
|
+
},
|
|
187
|
+
fetch,
|
|
188
|
+
checkReadBack
|
|
189
|
+
);
|
|
190
|
+
const finalOptions = mergeOptions(model, options, invalidateQueries, mutationFn, queryClient);
|
|
191
|
+
const mutation = (0, import_react_query.useMutation)(finalOptions);
|
|
192
|
+
return mutation;
|
|
193
|
+
}
|
|
194
|
+
function mergeOptions(model, options, invalidateQueries, mutationFn, queryClient) {
|
|
195
|
+
const result = __spreadProps(__spreadValues({}, options), { mutationFn });
|
|
196
|
+
if ((options == null ? void 0 : options.onSuccess) || invalidateQueries) {
|
|
197
|
+
result.onSuccess = (...args) => {
|
|
198
|
+
var _a;
|
|
199
|
+
if (invalidateQueries) {
|
|
200
|
+
queryClient.invalidateQueries([QUERY_KEY_PREFIX + model]);
|
|
201
|
+
}
|
|
202
|
+
return (_a = options == null ? void 0 : options.onSuccess) == null ? void 0 : _a.call(options, ...args);
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
return result;
|
|
206
|
+
}
|
|
207
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
208
|
+
0 && (module.exports = {
|
|
209
|
+
Provider,
|
|
210
|
+
RequestHandlerContext,
|
|
211
|
+
deleteMutation,
|
|
212
|
+
postMutation,
|
|
213
|
+
putMutation,
|
|
214
|
+
query
|
|
215
|
+
});
|
|
216
|
+
//# sourceMappingURL=react.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/runtime/react.ts","../../src/runtime/common.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n useMutation,\n useQuery,\n useQueryClient,\n type MutateFunction,\n type QueryClient,\n type UseMutationOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport { createContext } from 'react';\nimport {\n DEFAULT_QUERY_ENDPOINT,\n FetchFn,\n QUERY_KEY_PREFIX,\n fetcher,\n makeUrl,\n marshal,\n type APIContext,\n} from './common';\n\n/**\n * Context for configuring react hooks.\n */\nexport const RequestHandlerContext = createContext<APIContext>({\n endpoint: DEFAULT_QUERY_ENDPOINT,\n fetch: undefined,\n});\n\n/**\n * Context provider.\n */\nexport const Provider = RequestHandlerContext.Provider;\n\n/**\n * Creates a react-query query.\n *\n * @param model The name of the model under query.\n * @param url The request URL.\n * @param args The request args object, URL-encoded and appended as \"?q=\" parameter\n * @param options The react-query options object\n * @returns useQuery hook\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function query<R>(model: string, url: string, args?: unknown, options?: UseQueryOptions<R>, fetch?: FetchFn) {\n const reqUrl = makeUrl(url, args);\n return useQuery<R>({\n queryKey: [QUERY_KEY_PREFIX + model, url, args],\n queryFn: () => fetcher<R, false>(reqUrl, undefined, fetch, false),\n ...options,\n });\n}\n\n/**\n * Creates a POST mutation with react-query.\n *\n * @param model The name of the model under mutation.\n * @param url The request URL.\n * @param options The react-query options.\n * @param invalidateQueries Whether to invalidate queries after mutation.\n * @returns useMutation hooks\n */\nexport function postMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(\n model: string,\n url: string,\n options?: Omit<UseMutationOptions<Result, unknown, T>, 'mutationFn'>,\n fetch?: FetchFn,\n invalidateQueries = true,\n checkReadBack?: C\n) {\n const queryClient = useQueryClient();\n const mutationFn = (data: any) =>\n fetcher<R, C>(\n url,\n {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n },\n body: marshal(data),\n },\n fetch,\n checkReadBack\n ) as Promise<Result>;\n\n const finalOptions = mergeOptions<T, Result>(model, options, invalidateQueries, mutationFn, queryClient);\n const mutation = useMutation<Result, unknown, T>(finalOptions);\n return mutation;\n}\n\n/**\n * Creates a PUT mutation with react-query.\n *\n * @param model The name of the model under mutation.\n * @param url The request URL.\n * @param options The react-query options.\n * @param invalidateQueries Whether to invalidate queries after mutation.\n * @returns useMutation hooks\n */\nexport function putMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(\n model: string,\n url: string,\n options?: Omit<UseMutationOptions<Result, unknown, T>, 'mutationFn'>,\n fetch?: FetchFn,\n invalidateQueries = true,\n checkReadBack?: C\n) {\n const queryClient = useQueryClient();\n const mutationFn = (data: any) =>\n fetcher<R, C>(\n url,\n {\n method: 'PUT',\n headers: {\n 'content-type': 'application/json',\n },\n body: marshal(data),\n },\n fetch,\n checkReadBack\n ) as Promise<Result>;\n\n const finalOptions = mergeOptions<T, Result>(model, options, invalidateQueries, mutationFn, queryClient);\n const mutation = useMutation<Result, unknown, T>(finalOptions);\n return mutation;\n}\n\n/**\n * Creates a DELETE mutation with react-query.\n *\n * @param model The name of the model under mutation.\n * @param url The request URL.\n * @param options The react-query options.\n * @param invalidateQueries Whether to invalidate queries after mutation.\n * @returns useMutation hooks\n */\nexport function deleteMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(\n model: string,\n url: string,\n options?: Omit<UseMutationOptions<Result, unknown, T>, 'mutationFn'>,\n fetch?: FetchFn,\n invalidateQueries = true,\n checkReadBack?: C\n) {\n const queryClient = useQueryClient();\n const mutationFn = (data: any) =>\n fetcher<R, C>(\n makeUrl(url, data),\n {\n method: 'DELETE',\n },\n fetch,\n checkReadBack\n ) as Promise<Result>;\n\n const finalOptions = mergeOptions<T, Result>(model, options, invalidateQueries, mutationFn, queryClient);\n const mutation = useMutation<Result, unknown, T>(finalOptions);\n return mutation;\n}\n\nfunction mergeOptions<T, R = any>(\n model: string,\n options: Omit<UseMutationOptions<R, unknown, T, unknown>, 'mutationFn'> | undefined,\n invalidateQueries: boolean,\n mutationFn: MutateFunction<R, unknown, T>,\n queryClient: QueryClient\n): UseMutationOptions<R, unknown, T, unknown> {\n const result = { ...options, mutationFn };\n if (options?.onSuccess || invalidateQueries) {\n result.onSuccess = (...args) => {\n if (invalidateQueries) {\n queryClient.invalidateQueries([QUERY_KEY_PREFIX + model]);\n }\n return options?.onSuccess?.(...args);\n };\n }\n return result;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { serialize, deserialize } from '@zenstackhq/runtime/browser';\n\n/**\n * The default query endpoint.\n */\nexport const DEFAULT_QUERY_ENDPOINT = '/api/model';\n\n/**\n * Prefix for react-query keys.\n */\nexport const QUERY_KEY_PREFIX = 'zenstack:';\n\n/**\n * Function signature for `fetch`.\n */\nexport type FetchFn = (url: string, options?: RequestInit) => Promise<Response>;\n\n/**\n * Context type for configuring the hooks.\n */\nexport type APIContext = {\n /**\n * The endpoint to use for the queries.\n */\n endpoint: string;\n\n /**\n * A custom fetch function for sending the HTTP requests.\n */\n fetch?: FetchFn;\n};\n\nexport async function fetcher<R, C extends boolean>(\n url: string,\n options?: RequestInit,\n fetch?: FetchFn,\n checkReadBack?: C\n): Promise<C extends true ? R | undefined : R> {\n const _fetch = fetch ?? window.fetch;\n const res = await _fetch(url, options);\n if (!res.ok) {\n const errData = unmarshal(await res.text());\n if (\n checkReadBack !== false &&\n errData.error?.prisma &&\n errData.error?.code === 'P2004' &&\n errData.error?.reason === 'RESULT_NOT_READABLE'\n ) {\n // policy doesn't allow mutation result to be read back, just return undefined\n return undefined as any;\n }\n const error: Error & { info?: unknown; status?: number } = new Error(\n 'An error occurred while fetching the data.'\n );\n error.info = errData.error;\n error.status = res.status;\n throw error;\n }\n\n const textResult = await res.text();\n try {\n return unmarshal(textResult).data as R;\n } catch (err) {\n console.error(`Unable to deserialize data:`, textResult);\n throw err;\n }\n}\n\nexport function marshal(value: unknown) {\n const { data, meta } = serialize(value);\n if (meta) {\n return JSON.stringify({ ...(data as any), meta: { serialization: meta } });\n } else {\n return JSON.stringify(data);\n }\n}\n\nexport function unmarshal(value: string) {\n const parsed = JSON.parse(value);\n if (parsed.data && parsed.meta?.serialization) {\n const deserializedData = deserialize(parsed.data, parsed.meta.serialization);\n return { ...parsed, data: deserializedData };\n } else {\n return parsed;\n }\n}\n\nexport function makeUrl(url: string, args: unknown) {\n if (!args) {\n return url;\n }\n\n const { data, meta } = serialize(args);\n let result = `${url}?q=${encodeURIComponent(JSON.stringify(data))}`;\n if (meta) {\n result += `&meta=${encodeURIComponent(JSON.stringify({ serialization: meta }))}`;\n }\n return result;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
var __async = (__this, __arguments, generator) => {
|
|
21
|
+
return new Promise((resolve, reject) => {
|
|
22
|
+
var fulfilled = (value) => {
|
|
23
|
+
try {
|
|
24
|
+
step(generator.next(value));
|
|
25
|
+
} catch (e) {
|
|
26
|
+
reject(e);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
var rejected = (value) => {
|
|
30
|
+
try {
|
|
31
|
+
step(generator.throw(value));
|
|
32
|
+
} catch (e) {
|
|
33
|
+
reject(e);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
37
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// src/runtime/react.ts
|
|
42
|
+
import {
|
|
43
|
+
useMutation,
|
|
44
|
+
useQuery,
|
|
45
|
+
useQueryClient
|
|
46
|
+
} from "@tanstack/react-query";
|
|
47
|
+
import { createContext } from "react";
|
|
48
|
+
|
|
49
|
+
// src/runtime/common.ts
|
|
50
|
+
import { serialize, deserialize } from "@zenstackhq/runtime/browser";
|
|
51
|
+
var DEFAULT_QUERY_ENDPOINT = "/api/model";
|
|
52
|
+
var QUERY_KEY_PREFIX = "zenstack:";
|
|
53
|
+
function fetcher(url, options, fetch, checkReadBack) {
|
|
54
|
+
return __async(this, null, function* () {
|
|
55
|
+
var _a, _b, _c;
|
|
56
|
+
const _fetch = fetch != null ? fetch : window.fetch;
|
|
57
|
+
const res = yield _fetch(url, options);
|
|
58
|
+
if (!res.ok) {
|
|
59
|
+
const errData = unmarshal(yield res.text());
|
|
60
|
+
if (checkReadBack !== false && ((_a = errData.error) == null ? void 0 : _a.prisma) && ((_b = errData.error) == null ? void 0 : _b.code) === "P2004" && ((_c = errData.error) == null ? void 0 : _c.reason) === "RESULT_NOT_READABLE") {
|
|
61
|
+
return void 0;
|
|
62
|
+
}
|
|
63
|
+
const error = new Error(
|
|
64
|
+
"An error occurred while fetching the data."
|
|
65
|
+
);
|
|
66
|
+
error.info = errData.error;
|
|
67
|
+
error.status = res.status;
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
const textResult = yield res.text();
|
|
71
|
+
try {
|
|
72
|
+
return unmarshal(textResult).data;
|
|
73
|
+
} catch (err) {
|
|
74
|
+
console.error(`Unable to deserialize data:`, textResult);
|
|
75
|
+
throw err;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function marshal(value) {
|
|
80
|
+
const { data, meta } = serialize(value);
|
|
81
|
+
if (meta) {
|
|
82
|
+
return JSON.stringify(__spreadProps(__spreadValues({}, data), { meta: { serialization: meta } }));
|
|
83
|
+
} else {
|
|
84
|
+
return JSON.stringify(data);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function unmarshal(value) {
|
|
88
|
+
var _a;
|
|
89
|
+
const parsed = JSON.parse(value);
|
|
90
|
+
if (parsed.data && ((_a = parsed.meta) == null ? void 0 : _a.serialization)) {
|
|
91
|
+
const deserializedData = deserialize(parsed.data, parsed.meta.serialization);
|
|
92
|
+
return __spreadProps(__spreadValues({}, parsed), { data: deserializedData });
|
|
93
|
+
} else {
|
|
94
|
+
return parsed;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function makeUrl(url, args) {
|
|
98
|
+
if (!args) {
|
|
99
|
+
return url;
|
|
100
|
+
}
|
|
101
|
+
const { data, meta } = serialize(args);
|
|
102
|
+
let result = `${url}?q=${encodeURIComponent(JSON.stringify(data))}`;
|
|
103
|
+
if (meta) {
|
|
104
|
+
result += `&meta=${encodeURIComponent(JSON.stringify({ serialization: meta }))}`;
|
|
105
|
+
}
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// src/runtime/react.ts
|
|
110
|
+
var RequestHandlerContext = createContext({
|
|
111
|
+
endpoint: DEFAULT_QUERY_ENDPOINT,
|
|
112
|
+
fetch: void 0
|
|
113
|
+
});
|
|
114
|
+
var Provider = RequestHandlerContext.Provider;
|
|
115
|
+
function query(model, url, args, options, fetch) {
|
|
116
|
+
const reqUrl = makeUrl(url, args);
|
|
117
|
+
return useQuery(__spreadValues({
|
|
118
|
+
queryKey: [QUERY_KEY_PREFIX + model, url, args],
|
|
119
|
+
queryFn: () => fetcher(reqUrl, void 0, fetch, false)
|
|
120
|
+
}, options));
|
|
121
|
+
}
|
|
122
|
+
function postMutation(model, url, options, fetch, invalidateQueries = true, checkReadBack) {
|
|
123
|
+
const queryClient = useQueryClient();
|
|
124
|
+
const mutationFn = (data) => fetcher(
|
|
125
|
+
url,
|
|
126
|
+
{
|
|
127
|
+
method: "POST",
|
|
128
|
+
headers: {
|
|
129
|
+
"content-type": "application/json"
|
|
130
|
+
},
|
|
131
|
+
body: marshal(data)
|
|
132
|
+
},
|
|
133
|
+
fetch,
|
|
134
|
+
checkReadBack
|
|
135
|
+
);
|
|
136
|
+
const finalOptions = mergeOptions(model, options, invalidateQueries, mutationFn, queryClient);
|
|
137
|
+
const mutation = useMutation(finalOptions);
|
|
138
|
+
return mutation;
|
|
139
|
+
}
|
|
140
|
+
function putMutation(model, url, options, fetch, invalidateQueries = true, checkReadBack) {
|
|
141
|
+
const queryClient = useQueryClient();
|
|
142
|
+
const mutationFn = (data) => fetcher(
|
|
143
|
+
url,
|
|
144
|
+
{
|
|
145
|
+
method: "PUT",
|
|
146
|
+
headers: {
|
|
147
|
+
"content-type": "application/json"
|
|
148
|
+
},
|
|
149
|
+
body: marshal(data)
|
|
150
|
+
},
|
|
151
|
+
fetch,
|
|
152
|
+
checkReadBack
|
|
153
|
+
);
|
|
154
|
+
const finalOptions = mergeOptions(model, options, invalidateQueries, mutationFn, queryClient);
|
|
155
|
+
const mutation = useMutation(finalOptions);
|
|
156
|
+
return mutation;
|
|
157
|
+
}
|
|
158
|
+
function deleteMutation(model, url, options, fetch, invalidateQueries = true, checkReadBack) {
|
|
159
|
+
const queryClient = useQueryClient();
|
|
160
|
+
const mutationFn = (data) => fetcher(
|
|
161
|
+
makeUrl(url, data),
|
|
162
|
+
{
|
|
163
|
+
method: "DELETE"
|
|
164
|
+
},
|
|
165
|
+
fetch,
|
|
166
|
+
checkReadBack
|
|
167
|
+
);
|
|
168
|
+
const finalOptions = mergeOptions(model, options, invalidateQueries, mutationFn, queryClient);
|
|
169
|
+
const mutation = useMutation(finalOptions);
|
|
170
|
+
return mutation;
|
|
171
|
+
}
|
|
172
|
+
function mergeOptions(model, options, invalidateQueries, mutationFn, queryClient) {
|
|
173
|
+
const result = __spreadProps(__spreadValues({}, options), { mutationFn });
|
|
174
|
+
if ((options == null ? void 0 : options.onSuccess) || invalidateQueries) {
|
|
175
|
+
result.onSuccess = (...args) => {
|
|
176
|
+
var _a;
|
|
177
|
+
if (invalidateQueries) {
|
|
178
|
+
queryClient.invalidateQueries([QUERY_KEY_PREFIX + model]);
|
|
179
|
+
}
|
|
180
|
+
return (_a = options == null ? void 0 : options.onSuccess) == null ? void 0 : _a.call(options, ...args);
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
export {
|
|
186
|
+
Provider,
|
|
187
|
+
RequestHandlerContext,
|
|
188
|
+
deleteMutation,
|
|
189
|
+
postMutation,
|
|
190
|
+
putMutation,
|
|
191
|
+
query
|
|
192
|
+
};
|
|
193
|
+
//# sourceMappingURL=react.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/runtime/react.ts","../../src/runtime/common.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n useMutation,\n useQuery,\n useQueryClient,\n type MutateFunction,\n type QueryClient,\n type UseMutationOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport { createContext } from 'react';\nimport {\n DEFAULT_QUERY_ENDPOINT,\n FetchFn,\n QUERY_KEY_PREFIX,\n fetcher,\n makeUrl,\n marshal,\n type APIContext,\n} from './common';\n\n/**\n * Context for configuring react hooks.\n */\nexport const RequestHandlerContext = createContext<APIContext>({\n endpoint: DEFAULT_QUERY_ENDPOINT,\n fetch: undefined,\n});\n\n/**\n * Context provider.\n */\nexport const Provider = RequestHandlerContext.Provider;\n\n/**\n * Creates a react-query query.\n *\n * @param model The name of the model under query.\n * @param url The request URL.\n * @param args The request args object, URL-encoded and appended as \"?q=\" parameter\n * @param options The react-query options object\n * @returns useQuery hook\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function query<R>(model: string, url: string, args?: unknown, options?: UseQueryOptions<R>, fetch?: FetchFn) {\n const reqUrl = makeUrl(url, args);\n return useQuery<R>({\n queryKey: [QUERY_KEY_PREFIX + model, url, args],\n queryFn: () => fetcher<R, false>(reqUrl, undefined, fetch, false),\n ...options,\n });\n}\n\n/**\n * Creates a POST mutation with react-query.\n *\n * @param model The name of the model under mutation.\n * @param url The request URL.\n * @param options The react-query options.\n * @param invalidateQueries Whether to invalidate queries after mutation.\n * @returns useMutation hooks\n */\nexport function postMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(\n model: string,\n url: string,\n options?: Omit<UseMutationOptions<Result, unknown, T>, 'mutationFn'>,\n fetch?: FetchFn,\n invalidateQueries = true,\n checkReadBack?: C\n) {\n const queryClient = useQueryClient();\n const mutationFn = (data: any) =>\n fetcher<R, C>(\n url,\n {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n },\n body: marshal(data),\n },\n fetch,\n checkReadBack\n ) as Promise<Result>;\n\n const finalOptions = mergeOptions<T, Result>(model, options, invalidateQueries, mutationFn, queryClient);\n const mutation = useMutation<Result, unknown, T>(finalOptions);\n return mutation;\n}\n\n/**\n * Creates a PUT mutation with react-query.\n *\n * @param model The name of the model under mutation.\n * @param url The request URL.\n * @param options The react-query options.\n * @param invalidateQueries Whether to invalidate queries after mutation.\n * @returns useMutation hooks\n */\nexport function putMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(\n model: string,\n url: string,\n options?: Omit<UseMutationOptions<Result, unknown, T>, 'mutationFn'>,\n fetch?: FetchFn,\n invalidateQueries = true,\n checkReadBack?: C\n) {\n const queryClient = useQueryClient();\n const mutationFn = (data: any) =>\n fetcher<R, C>(\n url,\n {\n method: 'PUT',\n headers: {\n 'content-type': 'application/json',\n },\n body: marshal(data),\n },\n fetch,\n checkReadBack\n ) as Promise<Result>;\n\n const finalOptions = mergeOptions<T, Result>(model, options, invalidateQueries, mutationFn, queryClient);\n const mutation = useMutation<Result, unknown, T>(finalOptions);\n return mutation;\n}\n\n/**\n * Creates a DELETE mutation with react-query.\n *\n * @param model The name of the model under mutation.\n * @param url The request URL.\n * @param options The react-query options.\n * @param invalidateQueries Whether to invalidate queries after mutation.\n * @returns useMutation hooks\n */\nexport function deleteMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(\n model: string,\n url: string,\n options?: Omit<UseMutationOptions<Result, unknown, T>, 'mutationFn'>,\n fetch?: FetchFn,\n invalidateQueries = true,\n checkReadBack?: C\n) {\n const queryClient = useQueryClient();\n const mutationFn = (data: any) =>\n fetcher<R, C>(\n makeUrl(url, data),\n {\n method: 'DELETE',\n },\n fetch,\n checkReadBack\n ) as Promise<Result>;\n\n const finalOptions = mergeOptions<T, Result>(model, options, invalidateQueries, mutationFn, queryClient);\n const mutation = useMutation<Result, unknown, T>(finalOptions);\n return mutation;\n}\n\nfunction mergeOptions<T, R = any>(\n model: string,\n options: Omit<UseMutationOptions<R, unknown, T, unknown>, 'mutationFn'> | undefined,\n invalidateQueries: boolean,\n mutationFn: MutateFunction<R, unknown, T>,\n queryClient: QueryClient\n): UseMutationOptions<R, unknown, T, unknown> {\n const result = { ...options, mutationFn };\n if (options?.onSuccess || invalidateQueries) {\n result.onSuccess = (...args) => {\n if (invalidateQueries) {\n queryClient.invalidateQueries([QUERY_KEY_PREFIX + model]);\n }\n return options?.onSuccess?.(...args);\n };\n }\n return result;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { serialize, deserialize } from '@zenstackhq/runtime/browser';\n\n/**\n * The default query endpoint.\n */\nexport const DEFAULT_QUERY_ENDPOINT = '/api/model';\n\n/**\n * Prefix for react-query keys.\n */\nexport const QUERY_KEY_PREFIX = 'zenstack:';\n\n/**\n * Function signature for `fetch`.\n */\nexport type FetchFn = (url: string, options?: RequestInit) => Promise<Response>;\n\n/**\n * Context type for configuring the hooks.\n */\nexport type APIContext = {\n /**\n * The endpoint to use for the queries.\n */\n endpoint: string;\n\n /**\n * A custom fetch function for sending the HTTP requests.\n */\n fetch?: FetchFn;\n};\n\nexport async function fetcher<R, C extends boolean>(\n url: string,\n options?: RequestInit,\n fetch?: FetchFn,\n checkReadBack?: C\n): Promise<C extends true ? R | undefined : R> {\n const _fetch = fetch ?? window.fetch;\n const res = await _fetch(url, options);\n if (!res.ok) {\n const errData = unmarshal(await res.text());\n if (\n checkReadBack !== false &&\n errData.error?.prisma &&\n errData.error?.code === 'P2004' &&\n errData.error?.reason === 'RESULT_NOT_READABLE'\n ) {\n // policy doesn't allow mutation result to be read back, just return undefined\n return undefined as any;\n }\n const error: Error & { info?: unknown; status?: number } = new Error(\n 'An error occurred while fetching the data.'\n );\n error.info = errData.error;\n error.status = res.status;\n throw error;\n }\n\n const textResult = await res.text();\n try {\n return unmarshal(textResult).data as R;\n } catch (err) {\n console.error(`Unable to deserialize data:`, textResult);\n throw err;\n }\n}\n\nexport function marshal(value: unknown) {\n const { data, meta } = serialize(value);\n if (meta) {\n return JSON.stringify({ ...(data as any), meta: { serialization: meta } });\n } else {\n return JSON.stringify(data);\n }\n}\n\nexport function unmarshal(value: string) {\n const parsed = JSON.parse(value);\n if (parsed.data && parsed.meta?.serialization) {\n const deserializedData = deserialize(parsed.data, parsed.meta.serialization);\n return { ...parsed, data: deserializedData };\n } else {\n return parsed;\n }\n}\n\nexport function makeUrl(url: string, args: unknown) {\n if (!args) {\n return url;\n }\n\n const { data, meta } = serialize(args);\n let result = `${url}?q=${encodeURIComponent(JSON.stringify(data))}`;\n if (meta) {\n result += `&meta=${encodeURIComponent(JSON.stringify({ serialization: meta }))}`;\n }\n return result;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as _tanstack_svelte_query from '@tanstack/svelte-query';
|
|
2
|
+
import { QueryOptions, MutationOptions } from '@tanstack/svelte-query';
|
|
3
|
+
import { F as FetchFn } from './common-52ab2c3a.js';
|
|
4
|
+
export { A as RequestHandlerContext } from './common-52ab2c3a.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Key for setting and getting the global query context.
|
|
8
|
+
*/
|
|
9
|
+
declare const SvelteQueryContextKey = "zenstack-svelte-query-context";
|
|
10
|
+
/**
|
|
11
|
+
* Creates a svelte-query query.
|
|
12
|
+
*
|
|
13
|
+
* @param model The name of the model under query.
|
|
14
|
+
* @param url The request URL.
|
|
15
|
+
* @param args The request args object, URL-encoded and appended as "?q=" parameter
|
|
16
|
+
* @param options The svelte-query options object
|
|
17
|
+
* @returns useQuery hook
|
|
18
|
+
*/
|
|
19
|
+
declare function query<R>(model: string, url: string, args?: unknown, options?: QueryOptions<R>, fetch?: FetchFn): _tanstack_svelte_query.CreateQueryResult<R, unknown>;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a POST mutation with svelte-query.
|
|
22
|
+
*
|
|
23
|
+
* @param model The name of the model under mutation.
|
|
24
|
+
* @param url The request URL.
|
|
25
|
+
* @param options The svelte-query options.
|
|
26
|
+
* @param invalidateQueries Whether to invalidate queries after mutation.
|
|
27
|
+
* @returns useMutation hooks
|
|
28
|
+
*/
|
|
29
|
+
declare function postMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(model: string, url: string, options?: Omit<MutationOptions<Result, unknown, T>, 'mutationFn'>, fetch?: FetchFn, invalidateQueries?: boolean, checkReadBack?: C): _tanstack_svelte_query.CreateMutationResult<Result, unknown, T, unknown>;
|
|
30
|
+
/**
|
|
31
|
+
* Creates a PUT mutation with svelte-query.
|
|
32
|
+
*
|
|
33
|
+
* @param model The name of the model under mutation.
|
|
34
|
+
* @param url The request URL.
|
|
35
|
+
* @param options The svelte-query options.
|
|
36
|
+
* @param invalidateQueries Whether to invalidate queries after mutation.
|
|
37
|
+
* @returns useMutation hooks
|
|
38
|
+
*/
|
|
39
|
+
declare function putMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(model: string, url: string, options?: Omit<MutationOptions<Result, unknown, T>, 'mutationFn'>, fetch?: FetchFn, invalidateQueries?: boolean, checkReadBack?: C): _tanstack_svelte_query.CreateMutationResult<Result, unknown, T, unknown>;
|
|
40
|
+
/**
|
|
41
|
+
* Creates a DELETE mutation with svelte-query.
|
|
42
|
+
*
|
|
43
|
+
* @param model The name of the model under mutation.
|
|
44
|
+
* @param url The request URL.
|
|
45
|
+
* @param options The svelte-query options.
|
|
46
|
+
* @param invalidateQueries Whether to invalidate queries after mutation.
|
|
47
|
+
* @returns useMutation hooks
|
|
48
|
+
*/
|
|
49
|
+
declare function deleteMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(model: string, url: string, options?: Omit<MutationOptions<Result, unknown, T>, 'mutationFn'>, fetch?: FetchFn, invalidateQueries?: boolean, checkReadBack?: C): _tanstack_svelte_query.CreateMutationResult<Result, unknown, T, unknown>;
|
|
50
|
+
|
|
51
|
+
export { SvelteQueryContextKey, deleteMutation, postMutation, putMutation, query };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as _tanstack_svelte_query from '@tanstack/svelte-query';
|
|
2
|
+
import { QueryOptions, MutationOptions } from '@tanstack/svelte-query';
|
|
3
|
+
import { F as FetchFn } from './common-52ab2c3a.js';
|
|
4
|
+
export { A as RequestHandlerContext } from './common-52ab2c3a.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Key for setting and getting the global query context.
|
|
8
|
+
*/
|
|
9
|
+
declare const SvelteQueryContextKey = "zenstack-svelte-query-context";
|
|
10
|
+
/**
|
|
11
|
+
* Creates a svelte-query query.
|
|
12
|
+
*
|
|
13
|
+
* @param model The name of the model under query.
|
|
14
|
+
* @param url The request URL.
|
|
15
|
+
* @param args The request args object, URL-encoded and appended as "?q=" parameter
|
|
16
|
+
* @param options The svelte-query options object
|
|
17
|
+
* @returns useQuery hook
|
|
18
|
+
*/
|
|
19
|
+
declare function query<R>(model: string, url: string, args?: unknown, options?: QueryOptions<R>, fetch?: FetchFn): _tanstack_svelte_query.CreateQueryResult<R, unknown>;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a POST mutation with svelte-query.
|
|
22
|
+
*
|
|
23
|
+
* @param model The name of the model under mutation.
|
|
24
|
+
* @param url The request URL.
|
|
25
|
+
* @param options The svelte-query options.
|
|
26
|
+
* @param invalidateQueries Whether to invalidate queries after mutation.
|
|
27
|
+
* @returns useMutation hooks
|
|
28
|
+
*/
|
|
29
|
+
declare function postMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(model: string, url: string, options?: Omit<MutationOptions<Result, unknown, T>, 'mutationFn'>, fetch?: FetchFn, invalidateQueries?: boolean, checkReadBack?: C): _tanstack_svelte_query.CreateMutationResult<Result, unknown, T, unknown>;
|
|
30
|
+
/**
|
|
31
|
+
* Creates a PUT mutation with svelte-query.
|
|
32
|
+
*
|
|
33
|
+
* @param model The name of the model under mutation.
|
|
34
|
+
* @param url The request URL.
|
|
35
|
+
* @param options The svelte-query options.
|
|
36
|
+
* @param invalidateQueries Whether to invalidate queries after mutation.
|
|
37
|
+
* @returns useMutation hooks
|
|
38
|
+
*/
|
|
39
|
+
declare function putMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(model: string, url: string, options?: Omit<MutationOptions<Result, unknown, T>, 'mutationFn'>, fetch?: FetchFn, invalidateQueries?: boolean, checkReadBack?: C): _tanstack_svelte_query.CreateMutationResult<Result, unknown, T, unknown>;
|
|
40
|
+
/**
|
|
41
|
+
* Creates a DELETE mutation with svelte-query.
|
|
42
|
+
*
|
|
43
|
+
* @param model The name of the model under mutation.
|
|
44
|
+
* @param url The request URL.
|
|
45
|
+
* @param options The svelte-query options.
|
|
46
|
+
* @param invalidateQueries Whether to invalidate queries after mutation.
|
|
47
|
+
* @returns useMutation hooks
|
|
48
|
+
*/
|
|
49
|
+
declare function deleteMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(model: string, url: string, options?: Omit<MutationOptions<Result, unknown, T>, 'mutationFn'>, fetch?: FetchFn, invalidateQueries?: boolean, checkReadBack?: C): _tanstack_svelte_query.CreateMutationResult<Result, unknown, T, unknown>;
|
|
50
|
+
|
|
51
|
+
export { SvelteQueryContextKey, deleteMutation, postMutation, putMutation, query };
|