@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 CHANGED
@@ -1,4 +1,4 @@
1
- import { DMMF } from '@prisma/generator-helper';
1
+ import type { DMMF } from '@prisma/generator-helper';
2
2
  import { PluginOptions } from '@zenstackhq/sdk';
3
3
  import { Model } from '@zenstackhq/sdk/ast';
4
4
  export declare function generate(model: Model, options: PluginOptions, dmmf: DMMF.Document): Promise<string[]>;
package/generator.js CHANGED
@@ -15,7 +15,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.generate = void 0;
16
16
  const sdk_1 = require("@zenstackhq/sdk");
17
17
  const change_case_1 = require("change-case");
18
- const fs_1 = __importDefault(require("fs"));
19
18
  const lower_case_first_1 = require("lower-case-first");
20
19
  const path_1 = __importDefault(require("path"));
21
20
  const ts_morph_1 = require("ts-morph");
@@ -33,8 +32,7 @@ function generate(model, options, dmmf) {
33
32
  if (!supportedTargets.includes(target)) {
34
33
  throw new sdk_1.PluginError(options.name, `Unsupported target "${target}", supported values: ${supportedTargets.join(', ')}`);
35
34
  }
36
- generateIndex(project, outDir, models);
37
- generateHelper(target, project, outDir, options.useSuperJson === true);
35
+ generateIndex(project, outDir, models, target);
38
36
  models.forEach((dataModel) => {
39
37
  const mapping = dmmf.mappings.modelOperations.find((op) => op.model === dataModel.name);
40
38
  if (!mapping) {
@@ -71,15 +69,18 @@ function generateQueryHook(target, sf, model, operation, returnArray, optionalIn
71
69
  });
72
70
  func.addStatements([
73
71
  makeGetContext(target),
74
- `return query<${returnType}>('${model}', \`\${endpoint}/${(0, lower_case_first_1.lowerCaseFirst)(model)}/${operation}\`, args, options);`,
72
+ `return query<${returnType}>('${model}', \`\${endpoint}/${(0, lower_case_first_1.lowerCaseFirst)(model)}/${operation}\`, args, options, fetch);`,
75
73
  ]);
76
74
  }
77
- function generateMutationHook(target, sf, model, operation, httpVerb, overrideReturnType) {
75
+ function generateMutationHook(target, sf, model, operation, httpVerb, checkReadBack, overrideReturnType) {
78
76
  const capOperation = (0, upper_case_first_1.upperCaseFirst)(operation);
79
77
  const argsType = `Prisma.${model}${capOperation}Args`;
80
78
  const inputType = `Prisma.SelectSubset<T, ${argsType}>`;
81
- const returnType = overrideReturnType !== null && overrideReturnType !== void 0 ? overrideReturnType : `Prisma.CheckSelect<T, ${model}, Prisma.${model}GetPayload<T>>`;
82
- const nonGenericOptionsType = `Omit<${makeMutationOptions(target, overrideReturnType !== null && overrideReturnType !== void 0 ? overrideReturnType : model, argsType)}, 'mutationFn'>`;
79
+ let returnType = overrideReturnType !== null && overrideReturnType !== void 0 ? overrideReturnType : `Prisma.CheckSelect<T, ${model}, Prisma.${model}GetPayload<T>>`;
80
+ if (checkReadBack) {
81
+ returnType = `(${returnType} | undefined )`;
82
+ }
83
+ const nonGenericOptionsType = `Omit<${makeMutationOptions(target, checkReadBack ? `(${overrideReturnType !== null && overrideReturnType !== void 0 ? overrideReturnType : model} | undefined)` : overrideReturnType !== null && overrideReturnType !== void 0 ? overrideReturnType : model, argsType)}, 'mutationFn'>`;
83
84
  const optionsType = `Omit<${makeMutationOptions(target, returnType, inputType)}, 'mutationFn'>`;
84
85
  const func = sf.addFunction({
85
86
  name: `use${capOperation}${model}`,
@@ -104,7 +105,7 @@ function generateMutationHook(target, sf, model, operation, httpVerb, overrideRe
104
105
  {
105
106
  name: `_mutation`,
106
107
  initializer: `
107
- ${httpVerb}Mutation<${argsType}, ${overrideReturnType !== null && overrideReturnType !== void 0 ? overrideReturnType : model}>('${model}', \`\${endpoint}/${(0, lower_case_first_1.lowerCaseFirst)(model)}/${operation}\`, options, invalidateQueries)
108
+ ${httpVerb}Mutation<${argsType}, ${overrideReturnType !== null && overrideReturnType !== void 0 ? overrideReturnType : model}, ${checkReadBack}>('${model}', \`\${endpoint}/${(0, lower_case_first_1.lowerCaseFirst)(model)}/${operation}\`, options, fetch, invalidateQueries, ${checkReadBack})
108
109
  `,
109
110
  },
110
111
  ],
@@ -167,20 +168,21 @@ function generateModelHooks(target, project, outDir, model, mapping) {
167
168
  const fileName = (0, change_case_1.paramCase)(model.name);
168
169
  const sf = project.createSourceFile(path_1.default.join(outDir, `${fileName}.ts`), undefined, { overwrite: true });
169
170
  sf.addStatements('/* eslint-disable */');
171
+ const prismaImport = (0, sdk_1.getPrismaClientImportSpec)(model.$container, outDir);
170
172
  sf.addImportDeclaration({
171
173
  namedImports: ['Prisma', model.name],
172
174
  isTypeOnly: true,
173
- moduleSpecifier: '@prisma/client',
175
+ moduleSpecifier: prismaImport,
174
176
  });
175
177
  sf.addStatements(makeBaseImports(target));
176
178
  // create is somehow named "createOne" in the DMMF
177
179
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
178
180
  if (mapping.create || mapping.createOne) {
179
- generateMutationHook(target, sf, model.name, 'create', 'post');
181
+ generateMutationHook(target, sf, model.name, 'create', 'post', true);
180
182
  }
181
183
  // createMany
182
184
  if (mapping.createMany) {
183
- generateMutationHook(target, sf, model.name, 'createMany', 'post', 'Prisma.BatchPayload');
185
+ generateMutationHook(target, sf, model.name, 'createMany', 'post', false, 'Prisma.BatchPayload');
184
186
  }
185
187
  // findMany
186
188
  if (mapping.findMany) {
@@ -198,27 +200,27 @@ function generateModelHooks(target, project, outDir, model, mapping) {
198
200
  // update is somehow named "updateOne" in the DMMF
199
201
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
200
202
  if (mapping.update || mapping.updateOne) {
201
- generateMutationHook(target, sf, model.name, 'update', 'put');
203
+ generateMutationHook(target, sf, model.name, 'update', 'put', true);
202
204
  }
203
205
  // updateMany
204
206
  if (mapping.updateMany) {
205
- generateMutationHook(target, sf, model.name, 'updateMany', 'put', 'Prisma.BatchPayload');
207
+ generateMutationHook(target, sf, model.name, 'updateMany', 'put', false, 'Prisma.BatchPayload');
206
208
  }
207
209
  // upsert
208
210
  // upsert is somehow named "upsertOne" in the DMMF
209
211
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
210
212
  if (mapping.upsert || mapping.upsertOne) {
211
- generateMutationHook(target, sf, model.name, 'upsert', 'post');
213
+ generateMutationHook(target, sf, model.name, 'upsert', 'post', true);
212
214
  }
213
215
  // del
214
216
  // delete is somehow named "deleteOne" in the DMMF
215
217
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
216
218
  if (mapping.delete || mapping.deleteOne) {
217
- generateMutationHook(target, sf, model.name, 'delete', 'delete');
219
+ generateMutationHook(target, sf, model.name, 'delete', 'delete', true);
218
220
  }
219
221
  // deleteMany
220
222
  if (mapping.deleteMany) {
221
- generateMutationHook(target, sf, model.name, 'deleteMany', 'delete', 'Prisma.BatchPayload');
223
+ generateMutationHook(target, sf, model.name, 'deleteMany', 'delete', false, 'Prisma.BatchPayload');
222
224
  }
223
225
  // aggregate
224
226
  if (mapping.aggregate) {
@@ -231,7 +233,7 @@ function generateModelHooks(target, project, outDir, model, mapping) {
231
233
  `HasSelectOrTake extends Prisma.Or<Prisma.Extends<'skip', Prisma.Keys<T>>, Prisma.Extends<'take', Prisma.Keys<T>>>`,
232
234
  `OrderByArg extends Prisma.True extends HasSelectOrTake ? { orderBy: Prisma.${model.name}GroupByArgs['orderBy'] }: { orderBy?: Prisma.${model.name}GroupByArgs['orderBy'] },`,
233
235
  `OrderFields extends Prisma.ExcludeUnderscoreKeys<Prisma.Keys<Prisma.MaybeTupleToUnion<T['orderBy']>>>`,
234
- `ByFields extends Prisma.TupleToUnion<T['by']>`,
236
+ `ByFields extends Prisma.MaybeTupleToUnion<T['by']>`,
235
237
  `ByValid extends Prisma.Has<ByFields, OrderFields>`,
236
238
  `HavingFields extends Prisma.GetHavingFields<T['having']>`,
237
239
  `HavingValid extends Prisma.Has<ByFields, HavingFields>`,
@@ -280,7 +282,7 @@ function generateModelHooks(target, project, outDir, model, mapping) {
280
282
  }[OrderFields]`,
281
283
  ];
282
284
  const returnType = `{} extends InputErrors ?
283
- Array<Prisma.PickArray<Prisma.${model.name}GroupByOutputType, T['by']> &
285
+ Array<PickEnumerable<Prisma.${model.name}GroupByOutputType, T['by']> &
284
286
  {
285
287
  [P in ((keyof T) & (keyof Prisma.${model.name}GroupByOutputType))]: P extends '_count'
286
288
  ? T[P] extends boolean
@@ -296,49 +298,39 @@ function generateModelHooks(target, project, outDir, model, mapping) {
296
298
  generateQueryHook(target, sf, model.name, 'count', false, true, `T extends { select: any; } ? T['select'] extends true ? number : Prisma.GetScalarType<T['select'], Prisma.${model.name}CountAggregateOutputType> : number`);
297
299
  }
298
300
  }
299
- function generateIndex(project, outDir, models) {
301
+ function generateIndex(project, outDir, models, target) {
300
302
  const sf = project.createSourceFile(path_1.default.join(outDir, 'index.ts'), undefined, { overwrite: true });
301
303
  sf.addStatements(models.map((d) => `export * from './${(0, change_case_1.paramCase)(d.name)}';`));
302
- sf.addStatements(`export * from './_helper';`);
303
- }
304
- function generateHelper(target, project, outDir, useSuperJson) {
305
- let srcFile;
306
304
  switch (target) {
307
305
  case 'react':
308
- srcFile = path_1.default.join(__dirname, './res/react/helper.ts');
306
+ sf.addStatements(`export { Provider } from '@zenstackhq/tanstack-query/runtime/react';`);
309
307
  break;
310
308
  case 'svelte':
311
- srcFile = path_1.default.join(__dirname, './res/svelte/helper.ts');
309
+ sf.addStatements(`export { SvelteQueryContextKey } from '@zenstackhq/tanstack-query/runtime/svelte';`);
312
310
  break;
313
- default:
314
- throw new sdk_1.PluginError(_1.name, `Unsupported target: ${target}`);
315
311
  }
316
- // merge content of `shared.ts`, `helper.ts` and `marshal-?.ts`
317
- const sharedContent = fs_1.default.readFileSync(path_1.default.join(__dirname, './res/shared.ts'), 'utf-8');
318
- const helperContent = fs_1.default.readFileSync(srcFile, 'utf-8');
319
- const marshalContent = fs_1.default.readFileSync(path_1.default.join(__dirname, useSuperJson ? './res/marshal-superjson.ts' : './res/marshal-json.ts'), 'utf-8');
320
- project.createSourceFile(path_1.default.join(outDir, '_helper.ts'), `${sharedContent}\n${helperContent}\n${marshalContent}`, {
321
- overwrite: true,
322
- });
323
312
  }
324
313
  function makeGetContext(target) {
325
314
  switch (target) {
326
315
  case 'react':
327
- return 'const { endpoint } = useContext(RequestHandlerContext);';
316
+ return 'const { endpoint, fetch } = useContext(RequestHandlerContext);';
328
317
  case 'svelte':
329
- return `const { endpoint } = getContext<RequestHandlerContext>(SvelteQueryContextKey);`;
318
+ return `const { endpoint, fetch } = getContext<RequestHandlerContext>(SvelteQueryContextKey);`;
330
319
  default:
331
320
  throw new sdk_1.PluginError(_1.name, `Unsupported target "${target}"`);
332
321
  }
333
322
  }
334
323
  function makeBaseImports(target) {
335
- const shared = [`import { query, postMutation, putMutation, deleteMutation } from './_helper';`];
324
+ const shared = [
325
+ `import { query, postMutation, putMutation, deleteMutation } from '@zenstackhq/tanstack-query/runtime/${target}';`,
326
+ `import type { PickEnumerable } from '@zenstackhq/tanstack-query/runtime';`,
327
+ ];
336
328
  switch (target) {
337
329
  case 'react':
338
330
  return [
339
331
  `import { useContext } from 'react';`,
340
332
  `import type { UseMutationOptions, UseQueryOptions } from '@tanstack/react-query';`,
341
- `import { RequestHandlerContext } from './_helper';`,
333
+ `import { RequestHandlerContext } from '@zenstackhq/tanstack-query/runtime/${target}';`,
342
334
  ...shared,
343
335
  ];
344
336
  case 'svelte':
@@ -346,7 +338,7 @@ function makeBaseImports(target) {
346
338
  `import { getContext } from 'svelte';`,
347
339
  `import { derived } from 'svelte/store';`,
348
340
  `import type { MutationOptions, QueryOptions } from '@tanstack/svelte-query';`,
349
- `import { SvelteQueryContextKey, type RequestHandlerContext } from './_helper';`,
341
+ `import { SvelteQueryContextKey, type RequestHandlerContext } from '@zenstackhq/tanstack-query/runtime/${target}';`,
350
342
  ...shared,
351
343
  ];
352
344
  default:
package/generator.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,29 @@
1
1
  {
2
2
  "name": "@zenstackhq/tanstack-query",
3
3
  "displayName": "ZenStack plugin for generating tanstack-query hooks",
4
- "version": "1.0.0-beta.1",
4
+ "version": "1.0.0-beta.11",
5
5
  "description": "ZenStack plugin for generating tanstack-query hooks",
6
6
  "main": "index.js",
7
+ "exports": {
8
+ ".": {
9
+ "default": "./index.js"
10
+ },
11
+ "./package.json": {
12
+ "default": "./package.json"
13
+ },
14
+ "./runtime/react": {
15
+ "import": "./runtime/react.mjs",
16
+ "require": "./runtime/react.js",
17
+ "default": "./runtime/react.js",
18
+ "types": "./runtime/react.d.ts"
19
+ },
20
+ "./runtime/svelte": {
21
+ "import": "./runtime/svelte.mjs",
22
+ "require": "./runtime/svelte.js",
23
+ "default": "./runtime/svelte.js",
24
+ "types": "./runtime/svelte.d.ts"
25
+ }
26
+ },
7
27
  "repository": {
8
28
  "type": "git",
9
29
  "url": "https://github.com/zenstackhq/zenstack"
@@ -16,39 +36,38 @@
16
36
  "author": "ZenStack Team",
17
37
  "license": "MIT",
18
38
  "dependencies": {
19
- "@prisma/generator-helper": "^4.7.1",
39
+ "@prisma/generator-helper": "^5.0.0",
20
40
  "change-case": "^4.1.2",
21
41
  "decimal.js": "^10.4.2",
22
42
  "lower-case-first": "^2.0.2",
23
43
  "superjson": "^1.11.0",
24
44
  "ts-morph": "^16.0.0",
25
45
  "upper-case-first": "^2.0.2",
26
- "@zenstackhq/sdk": "1.0.0-beta.1"
46
+ "@zenstackhq/runtime": "1.0.0-beta.11",
47
+ "@zenstackhq/sdk": "1.0.0-beta.11"
27
48
  },
28
49
  "devDependencies": {
29
- "@tanstack/react-query": "^4.29.7",
30
- "@tanstack/svelte-query": "^4.29.7",
50
+ "@tanstack/react-query": "4.29.7",
51
+ "@tanstack/svelte-query": "4.29.7",
31
52
  "@types/jest": "^29.5.0",
32
- "@types/lower-case-first": "^1.0.1",
33
- "@types/react": "^18.0.26",
53
+ "@types/node": "^18.0.0",
54
+ "@types/react": "18.2.0",
34
55
  "@types/tmp": "^0.2.3",
35
- "@types/upper-case-first": "^1.1.2",
36
56
  "copyfiles": "^2.4.1",
37
57
  "jest": "^29.5.0",
38
- "react": "^17.0.2 || ^18",
39
- "react-dom": "^17.0.2 || ^18",
58
+ "react": "18.2.0",
40
59
  "rimraf": "^3.0.2",
41
60
  "swr": "^2.0.3",
42
61
  "ts-jest": "^29.0.5",
43
62
  "typescript": "^4.9.4",
44
- "@zenstackhq/testtools": "1.0.0-beta.1"
63
+ "@zenstackhq/testtools": "1.0.0-beta.11"
45
64
  },
46
65
  "scripts": {
47
66
  "clean": "rimraf dist",
48
- "build": "pnpm lint && pnpm clean && tsc && copyfiles ./package.json ./README.md ./LICENSE 'res/**/*' dist",
49
- "watch": "tsc --watch",
67
+ "build": "pnpm lint && pnpm clean && tsc && tsup-node && copyfiles ./package.json ./README.md ./LICENSE dist && pnpm pack dist --pack-destination '../../../../.build'",
68
+ "watch": "concurrently \"tsc --watch\" \"tsup-node --watch\"",
50
69
  "lint": "eslint src --ext ts",
51
- "test": "jest",
70
+ "test": "ZENSTACK_TEST=1 jest",
52
71
  "publish-dev": "pnpm publish --tag dev"
53
72
  }
54
73
  }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Function signature for `fetch`.
3
+ */
4
+ type FetchFn = (url: string, options?: RequestInit) => Promise<Response>;
5
+ /**
6
+ * Context type for configuring the hooks.
7
+ */
8
+ type APIContext = {
9
+ /**
10
+ * The endpoint to use for the queries.
11
+ */
12
+ endpoint: string;
13
+ /**
14
+ * A custom fetch function for sending the HTTP requests.
15
+ */
16
+ fetch?: FetchFn;
17
+ };
18
+
19
+ export { APIContext as A, FetchFn as F };
@@ -0,0 +1,7 @@
1
+ type Enumerable<T> = T | Array<T>;
2
+ type _TupleToUnion<T> = T extends (infer E)[] ? E : never;
3
+ type TupleToUnion<K extends readonly any[]> = _TupleToUnion<K>;
4
+ type MaybeTupleToUnion<T> = T extends any[] ? TupleToUnion<T> : T;
5
+ type PickEnumerable<T, K extends Enumerable<keyof T> | keyof T> = Pick<T, MaybeTupleToUnion<K>>;
6
+
7
+ export { Enumerable, MaybeTupleToUnion, PickEnumerable, TupleToUnion };
@@ -0,0 +1,7 @@
1
+ type Enumerable<T> = T | Array<T>;
2
+ type _TupleToUnion<T> = T extends (infer E)[] ? E : never;
3
+ type TupleToUnion<K extends readonly any[]> = _TupleToUnion<K>;
4
+ type MaybeTupleToUnion<T> = T extends any[] ? TupleToUnion<T> : T;
5
+ type PickEnumerable<T, K extends Enumerable<keyof T> | keyof T> = Pick<T, MaybeTupleToUnion<K>>;
6
+
7
+ export { Enumerable, MaybeTupleToUnion, PickEnumerable, TupleToUnion };
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/runtime/index.ts
17
+ var runtime_exports = {};
18
+ module.exports = __toCommonJS(runtime_exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/runtime/index.ts"],"sourcesContent":["export * from './prisma-types';\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,55 @@
1
+ import * as _tanstack_react_query from '@tanstack/react-query';
2
+ import { UseQueryOptions, UseMutationOptions } from '@tanstack/react-query';
3
+ import * as react from 'react';
4
+ import { A as APIContext, F as FetchFn } from './common-52ab2c3a.js';
5
+
6
+ /**
7
+ * Context for configuring react hooks.
8
+ */
9
+ declare const RequestHandlerContext: react.Context<APIContext>;
10
+ /**
11
+ * Context provider.
12
+ */
13
+ declare const Provider: react.Provider<APIContext>;
14
+ /**
15
+ * Creates a react-query query.
16
+ *
17
+ * @param model The name of the model under query.
18
+ * @param url The request URL.
19
+ * @param args The request args object, URL-encoded and appended as "?q=" parameter
20
+ * @param options The react-query options object
21
+ * @returns useQuery hook
22
+ */
23
+ declare function query<R>(model: string, url: string, args?: unknown, options?: UseQueryOptions<R>, fetch?: FetchFn): _tanstack_react_query.UseQueryResult<R, unknown>;
24
+ /**
25
+ * Creates a POST mutation with react-query.
26
+ *
27
+ * @param model The name of the model under mutation.
28
+ * @param url The request URL.
29
+ * @param options The react-query options.
30
+ * @param invalidateQueries Whether to invalidate queries after mutation.
31
+ * @returns useMutation hooks
32
+ */
33
+ declare function postMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(model: string, url: string, options?: Omit<UseMutationOptions<Result, unknown, T>, 'mutationFn'>, fetch?: FetchFn, invalidateQueries?: boolean, checkReadBack?: C): _tanstack_react_query.UseMutationResult<Result, unknown, T, unknown>;
34
+ /**
35
+ * Creates a PUT mutation with react-query.
36
+ *
37
+ * @param model The name of the model under mutation.
38
+ * @param url The request URL.
39
+ * @param options The react-query options.
40
+ * @param invalidateQueries Whether to invalidate queries after mutation.
41
+ * @returns useMutation hooks
42
+ */
43
+ declare function putMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(model: string, url: string, options?: Omit<UseMutationOptions<Result, unknown, T>, 'mutationFn'>, fetch?: FetchFn, invalidateQueries?: boolean, checkReadBack?: C): _tanstack_react_query.UseMutationResult<Result, unknown, T, unknown>;
44
+ /**
45
+ * Creates a DELETE mutation with react-query.
46
+ *
47
+ * @param model The name of the model under mutation.
48
+ * @param url The request URL.
49
+ * @param options The react-query options.
50
+ * @param invalidateQueries Whether to invalidate queries after mutation.
51
+ * @returns useMutation hooks
52
+ */
53
+ declare function deleteMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(model: string, url: string, options?: Omit<UseMutationOptions<Result, unknown, T>, 'mutationFn'>, fetch?: FetchFn, invalidateQueries?: boolean, checkReadBack?: C): _tanstack_react_query.UseMutationResult<Result, unknown, T, unknown>;
54
+
55
+ export { Provider, RequestHandlerContext, deleteMutation, postMutation, putMutation, query };
@@ -0,0 +1,55 @@
1
+ import * as _tanstack_react_query from '@tanstack/react-query';
2
+ import { UseQueryOptions, UseMutationOptions } from '@tanstack/react-query';
3
+ import * as react from 'react';
4
+ import { A as APIContext, F as FetchFn } from './common-52ab2c3a.js';
5
+
6
+ /**
7
+ * Context for configuring react hooks.
8
+ */
9
+ declare const RequestHandlerContext: react.Context<APIContext>;
10
+ /**
11
+ * Context provider.
12
+ */
13
+ declare const Provider: react.Provider<APIContext>;
14
+ /**
15
+ * Creates a react-query query.
16
+ *
17
+ * @param model The name of the model under query.
18
+ * @param url The request URL.
19
+ * @param args The request args object, URL-encoded and appended as "?q=" parameter
20
+ * @param options The react-query options object
21
+ * @returns useQuery hook
22
+ */
23
+ declare function query<R>(model: string, url: string, args?: unknown, options?: UseQueryOptions<R>, fetch?: FetchFn): _tanstack_react_query.UseQueryResult<R, unknown>;
24
+ /**
25
+ * Creates a POST mutation with react-query.
26
+ *
27
+ * @param model The name of the model under mutation.
28
+ * @param url The request URL.
29
+ * @param options The react-query options.
30
+ * @param invalidateQueries Whether to invalidate queries after mutation.
31
+ * @returns useMutation hooks
32
+ */
33
+ declare function postMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(model: string, url: string, options?: Omit<UseMutationOptions<Result, unknown, T>, 'mutationFn'>, fetch?: FetchFn, invalidateQueries?: boolean, checkReadBack?: C): _tanstack_react_query.UseMutationResult<Result, unknown, T, unknown>;
34
+ /**
35
+ * Creates a PUT mutation with react-query.
36
+ *
37
+ * @param model The name of the model under mutation.
38
+ * @param url The request URL.
39
+ * @param options The react-query options.
40
+ * @param invalidateQueries Whether to invalidate queries after mutation.
41
+ * @returns useMutation hooks
42
+ */
43
+ declare function putMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(model: string, url: string, options?: Omit<UseMutationOptions<Result, unknown, T>, 'mutationFn'>, fetch?: FetchFn, invalidateQueries?: boolean, checkReadBack?: C): _tanstack_react_query.UseMutationResult<Result, unknown, T, unknown>;
44
+ /**
45
+ * Creates a DELETE mutation with react-query.
46
+ *
47
+ * @param model The name of the model under mutation.
48
+ * @param url The request URL.
49
+ * @param options The react-query options.
50
+ * @param invalidateQueries Whether to invalidate queries after mutation.
51
+ * @returns useMutation hooks
52
+ */
53
+ declare function deleteMutation<T, R = any, C extends boolean = boolean, Result = C extends true ? R | undefined : R>(model: string, url: string, options?: Omit<UseMutationOptions<Result, unknown, T>, 'mutationFn'>, fetch?: FetchFn, invalidateQueries?: boolean, checkReadBack?: C): _tanstack_react_query.UseMutationResult<Result, unknown, T, unknown>;
54
+
55
+ export { Provider, RequestHandlerContext, deleteMutation, postMutation, putMutation, query };