Skip to content

Commit a80e079

Browse files
authored
Merge pull request #325 from OpenAPI-Qraft/feat/meta-and-signal-for-the-mutations
feat: add meta and signal for the mutations
2 parents 9c243f0 + 93fa9db commit a80e079

File tree

9 files changed

+71
-19
lines changed

9 files changed

+71
-19
lines changed

.changeset/pre.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"mode": "pre",
3+
"tag": "beta",
4+
"initialVersions": {
5+
"@openapi-qraft/e2e": "1.0.0",
6+
"@openapi-qraft/cli": "2.6.1",
7+
"@openapi-qraft/eslint-config": "1.0.1",
8+
"@openapi-qraft/openapi-typescript-plugin": "1.2.17",
9+
"@openapi-qraft/plugin": "2.6.1",
10+
"@openapi-qraft/react": "2.6.1",
11+
"@openapi-qraft/rollup-config": "1.1.1",
12+
"@openapi-qraft/tanstack-query-react-plugin": "2.6.1",
13+
"@openapi-qraft/tanstack-query-react-types": "2.6.1",
14+
"@openapi-qraft/test-fixtures": "1.1.0",
15+
"@openapi-qraft/ts-factory-code-generator": "1.0.2",
16+
"playground": "0.0.14",
17+
"openapi-qraft-website": "0.0.0"
18+
},
19+
"changesets": []
20+
}

.changeset/yummy-files-relax.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@openapi-qraft/tanstack-query-react-types': patch
3+
---
4+
5+
Added support for `meta` and `signal` for mutating operations.

packages/react-client/src/tests/qraftAPIClient.test.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2312,6 +2312,8 @@ describe('Qraft uses Operation Mutation Function', () => {
23122312
verification_document_back: 'back',
23132313
verification_document_front: 'front',
23142314
},
2315+
signal: new AbortController().signal,
2316+
meta: { someExtraInfo: 'yep' },
23152317
},
23162318
requestFnSpy
23172319
);
@@ -2335,6 +2337,8 @@ describe('Qraft uses Operation Mutation Function', () => {
23352337
verification_document_back: 'back',
23362338
verification_document_front: 'front',
23372339
},
2340+
signal: new AbortController().signal,
2341+
meta: { someExtraInfo: 'yep' },
23382342
}
23392343
);
23402344
});

packages/tanstack-query-react-plugin/src/__snapshots__/explicit-import-extensions/services/ApprovalPoliciesService.ts.snapshot.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -680,7 +680,7 @@ export interface ApprovalPoliciesService {
680680
* @summary Delete an approval policy
681681
* @description Delete an existing approval policy.
682682
*/
683-
(options: ServiceOperationMutationFnOptions<DeleteApprovalPoliciesIdBody, DeleteApprovalPoliciesIdParameters>, client?: (schema: DeleteApprovalPoliciesIdSchema, options: ServiceOperationMutationFnOptions<DeleteApprovalPoliciesIdBody, DeleteApprovalPoliciesIdParameters>) => Promise<RequestFnResponse<DeleteApprovalPoliciesIdData, DeleteApprovalPoliciesIdError>>): Promise<RequestFnResponse<DeleteApprovalPoliciesIdData, DeleteApprovalPoliciesIdError>>;
683+
<TMeta extends Record<string, any>, TSignal extends AbortSignal = AbortSignal>(options: ServiceOperationMutationFnOptions<DeleteApprovalPoliciesIdBody, DeleteApprovalPoliciesIdParameters, TMeta, TSignal>, client?: (schema: DeleteApprovalPoliciesIdSchema, options: ServiceOperationMutationFnOptions<DeleteApprovalPoliciesIdBody, DeleteApprovalPoliciesIdParameters, TMeta, TSignal>) => Promise<RequestFnResponse<DeleteApprovalPoliciesIdData, DeleteApprovalPoliciesIdError>>): Promise<RequestFnResponse<DeleteApprovalPoliciesIdData, DeleteApprovalPoliciesIdError>>;
684684
/**
685685
* Provides access to the current state of a mutation, including its status, any resulting data, and associated errors.
686686
*
@@ -861,7 +861,7 @@ export interface ApprovalPoliciesService {
861861
* @summary Update an approval policy
862862
* @description Update an existing approval policy.
863863
*/
864-
(options: ServiceOperationMutationFnOptions<PatchApprovalPoliciesIdBody, PatchApprovalPoliciesIdParameters>, client?: (schema: PatchApprovalPoliciesIdSchema, options: ServiceOperationMutationFnOptions<PatchApprovalPoliciesIdBody, PatchApprovalPoliciesIdParameters>) => Promise<RequestFnResponse<PatchApprovalPoliciesIdData, PatchApprovalPoliciesIdError>>): Promise<RequestFnResponse<PatchApprovalPoliciesIdData, PatchApprovalPoliciesIdError>>;
864+
<TMeta extends Record<string, any>, TSignal extends AbortSignal = AbortSignal>(options: ServiceOperationMutationFnOptions<PatchApprovalPoliciesIdBody, PatchApprovalPoliciesIdParameters, TMeta, TSignal>, client?: (schema: PatchApprovalPoliciesIdSchema, options: ServiceOperationMutationFnOptions<PatchApprovalPoliciesIdBody, PatchApprovalPoliciesIdParameters, TMeta, TSignal>) => Promise<RequestFnResponse<PatchApprovalPoliciesIdData, PatchApprovalPoliciesIdError>>): Promise<RequestFnResponse<PatchApprovalPoliciesIdData, PatchApprovalPoliciesIdError>>;
865865
/**
866866
* Provides access to the current state of a mutation, including its status, any resulting data, and associated errors.
867867
*

packages/tanstack-query-react-plugin/src/__snapshots__/explicit-import-extensions/services/FilesService.ts.snapshot.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ export interface FilesService {
467467
/** @summary Upload a files by ID */
468468
isMutating<TContext>(filters?: MutationFiltersByParameters<PostFilesBody, PostFilesData, PostFilesParameters, PostFilesError | Error, TContext> | MutationFiltersByMutationKey<PostFilesSchema, PostFilesBody, PostFilesData, PostFilesParameters, PostFilesError | Error, TContext>): number;
469469
/** @summary Upload a files by ID */
470-
(options: ServiceOperationMutationFnOptions<PostFilesBody, PostFilesParameters>, client?: (schema: PostFilesSchema, options: ServiceOperationMutationFnOptions<PostFilesBody, PostFilesParameters>) => Promise<RequestFnResponse<PostFilesData, PostFilesError>>): Promise<RequestFnResponse<PostFilesData, PostFilesError>>;
470+
<TMeta extends Record<string, any>, TSignal extends AbortSignal = AbortSignal>(options: ServiceOperationMutationFnOptions<PostFilesBody, PostFilesParameters, TMeta, TSignal>, client?: (schema: PostFilesSchema, options: ServiceOperationMutationFnOptions<PostFilesBody, PostFilesParameters, TMeta, TSignal>) => Promise<RequestFnResponse<PostFilesData, PostFilesError>>): Promise<RequestFnResponse<PostFilesData, PostFilesError>>;
471471
/**
472472
* Provides access to the current state of a mutation, including its status, any resulting data, and associated errors.
473473
*
@@ -586,7 +586,7 @@ export interface FilesService {
586586
/** @summary Delete all files */
587587
isMutating<TContext>(filters?: MutationFiltersByParameters<DeleteFilesBody, DeleteFilesData, DeleteFilesParameters, DeleteFilesError | Error, TContext> | MutationFiltersByMutationKey<DeleteFilesSchema, DeleteFilesBody, DeleteFilesData, DeleteFilesParameters, DeleteFilesError | Error, TContext>): number;
588588
/** @summary Delete all files */
589-
(options: ServiceOperationMutationFnOptions<DeleteFilesBody, DeleteFilesParameters>, client?: (schema: DeleteFilesSchema, options: ServiceOperationMutationFnOptions<DeleteFilesBody, DeleteFilesParameters>) => Promise<RequestFnResponse<DeleteFilesData, DeleteFilesError>>): Promise<RequestFnResponse<DeleteFilesData, DeleteFilesError>>;
589+
<TMeta extends Record<string, any>, TSignal extends AbortSignal = AbortSignal>(options: ServiceOperationMutationFnOptions<DeleteFilesBody, DeleteFilesParameters, TMeta, TSignal>, client?: (schema: DeleteFilesSchema, options: ServiceOperationMutationFnOptions<DeleteFilesBody, DeleteFilesParameters, TMeta, TSignal>) => Promise<RequestFnResponse<DeleteFilesData, DeleteFilesError>>): Promise<RequestFnResponse<DeleteFilesData, DeleteFilesError>>;
590590
/**
591591
* Provides access to the current state of a mutation, including its status, any resulting data, and associated errors.
592592
*
@@ -709,7 +709,7 @@ export interface FilesService {
709709
/** @summary Trash files */
710710
isMutating<TContext>(filters?: MutationFiltersByParameters<TrashFilesBody, TrashFilesData, TrashFilesParameters, TrashFilesError | Error, TContext> | MutationFiltersByMutationKey<TrashFilesSchema, TrashFilesBody, TrashFilesData, TrashFilesParameters, TrashFilesError | Error, TContext>): number;
711711
/** @summary Trash files */
712-
(options: ServiceOperationMutationFnOptions<TrashFilesBody, TrashFilesParameters>, client?: (schema: TrashFilesSchema, options: ServiceOperationMutationFnOptions<TrashFilesBody, TrashFilesParameters>) => Promise<RequestFnResponse<TrashFilesData, TrashFilesError>>): Promise<RequestFnResponse<TrashFilesData, TrashFilesError>>;
712+
<TMeta extends Record<string, any>, TSignal extends AbortSignal = AbortSignal>(options: ServiceOperationMutationFnOptions<TrashFilesBody, TrashFilesParameters, TMeta, TSignal>, client?: (schema: TrashFilesSchema, options: ServiceOperationMutationFnOptions<TrashFilesBody, TrashFilesParameters, TMeta, TSignal>) => Promise<RequestFnResponse<TrashFilesData, TrashFilesError>>): Promise<RequestFnResponse<TrashFilesData, TrashFilesError>>;
713713
/**
714714
* Provides access to the current state of a mutation, including its status, any resulting data, and associated errors.
715715
*

packages/tanstack-query-react-plugin/src/__snapshots__/queryable-write-operations/services/ApprovalPoliciesService.ts.snapshot.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1199,7 +1199,7 @@ export interface ApprovalPoliciesService {
11991199
* @summary Delete an approval policy
12001200
* @description Delete an existing approval policy.
12011201
*/
1202-
(options: ServiceOperationMutationFnOptions<DeleteApprovalPoliciesIdBody, DeleteApprovalPoliciesIdParameters>, client?: (schema: DeleteApprovalPoliciesIdSchema, options: ServiceOperationMutationFnOptions<DeleteApprovalPoliciesIdBody, DeleteApprovalPoliciesIdParameters>) => Promise<RequestFnResponse<DeleteApprovalPoliciesIdData, DeleteApprovalPoliciesIdError>>): Promise<RequestFnResponse<DeleteApprovalPoliciesIdData, DeleteApprovalPoliciesIdError>>;
1202+
<TMeta extends Record<string, any>, TSignal extends AbortSignal = AbortSignal>(options: ServiceOperationMutationFnOptions<DeleteApprovalPoliciesIdBody, DeleteApprovalPoliciesIdParameters, TMeta, TSignal>, client?: (schema: DeleteApprovalPoliciesIdSchema, options: ServiceOperationMutationFnOptions<DeleteApprovalPoliciesIdBody, DeleteApprovalPoliciesIdParameters, TMeta, TSignal>) => Promise<RequestFnResponse<DeleteApprovalPoliciesIdData, DeleteApprovalPoliciesIdError>>): Promise<RequestFnResponse<DeleteApprovalPoliciesIdData, DeleteApprovalPoliciesIdError>>;
12031203
/**
12041204
* Provides access to the current state of a mutation, including its status, any resulting data, and associated errors.
12051205
*
@@ -1916,7 +1916,7 @@ export interface ApprovalPoliciesService {
19161916
* @summary Update an approval policy
19171917
* @description Update an existing approval policy.
19181918
*/
1919-
(options: ServiceOperationMutationFnOptions<PatchApprovalPoliciesIdBody, PatchApprovalPoliciesIdMutationParameters>, client?: (schema: PatchApprovalPoliciesIdSchema, options: ServiceOperationMutationFnOptions<PatchApprovalPoliciesIdBody, PatchApprovalPoliciesIdMutationParameters>) => Promise<RequestFnResponse<PatchApprovalPoliciesIdData, PatchApprovalPoliciesIdError>>): Promise<RequestFnResponse<PatchApprovalPoliciesIdData, PatchApprovalPoliciesIdError>>;
1919+
<TMeta extends Record<string, any>, TSignal extends AbortSignal = AbortSignal>(options: ServiceOperationMutationFnOptions<PatchApprovalPoliciesIdBody, PatchApprovalPoliciesIdMutationParameters, TMeta, TSignal>, client?: (schema: PatchApprovalPoliciesIdSchema, options: ServiceOperationMutationFnOptions<PatchApprovalPoliciesIdBody, PatchApprovalPoliciesIdMutationParameters, TMeta, TSignal>) => Promise<RequestFnResponse<PatchApprovalPoliciesIdData, PatchApprovalPoliciesIdError>>): Promise<RequestFnResponse<PatchApprovalPoliciesIdData, PatchApprovalPoliciesIdError>>;
19201920
/**
19211921
* Provides access to the current state of a mutation, including its status, any resulting data, and associated errors.
19221922
*

packages/tanstack-query-react-plugin/src/__snapshots__/queryable-write-operations/services/FilesService.ts.snapshot.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -770,7 +770,7 @@ export interface FilesService {
770770
/** @summary Upload a files by ID */
771771
isMutating<TContext>(filters?: MutationFiltersByParameters<PostFilesBody, PostFilesData, PostFilesMutationParameters, PostFilesError | Error, TContext> | MutationFiltersByMutationKey<PostFilesSchema, PostFilesBody, PostFilesData, PostFilesMutationParameters, PostFilesError | Error, TContext>): number;
772772
/** @summary Upload a files by ID */
773-
(options: ServiceOperationMutationFnOptions<PostFilesBody, PostFilesMutationParameters>, client?: (schema: PostFilesSchema, options: ServiceOperationMutationFnOptions<PostFilesBody, PostFilesMutationParameters>) => Promise<RequestFnResponse<PostFilesData, PostFilesError>>): Promise<RequestFnResponse<PostFilesData, PostFilesError>>;
773+
<TMeta extends Record<string, any>, TSignal extends AbortSignal = AbortSignal>(options: ServiceOperationMutationFnOptions<PostFilesBody, PostFilesMutationParameters, TMeta, TSignal>, client?: (schema: PostFilesSchema, options: ServiceOperationMutationFnOptions<PostFilesBody, PostFilesMutationParameters, TMeta, TSignal>) => Promise<RequestFnResponse<PostFilesData, PostFilesError>>): Promise<RequestFnResponse<PostFilesData, PostFilesError>>;
774774
/**
775775
* Provides access to the current state of a mutation, including its status, any resulting data, and associated errors.
776776
*
@@ -1226,7 +1226,7 @@ export interface FilesService {
12261226
/** @summary Delete all files */
12271227
isMutating<TContext>(filters?: MutationFiltersByParameters<DeleteFilesBody, DeleteFilesData, DeleteFilesParameters, DeleteFilesError | Error, TContext> | MutationFiltersByMutationKey<DeleteFilesSchema, DeleteFilesBody, DeleteFilesData, DeleteFilesParameters, DeleteFilesError | Error, TContext>): number;
12281228
/** @summary Delete all files */
1229-
(options: ServiceOperationMutationFnOptions<DeleteFilesBody, DeleteFilesParameters>, client?: (schema: DeleteFilesSchema, options: ServiceOperationMutationFnOptions<DeleteFilesBody, DeleteFilesParameters>) => Promise<RequestFnResponse<DeleteFilesData, DeleteFilesError>>): Promise<RequestFnResponse<DeleteFilesData, DeleteFilesError>>;
1229+
<TMeta extends Record<string, any>, TSignal extends AbortSignal = AbortSignal>(options: ServiceOperationMutationFnOptions<DeleteFilesBody, DeleteFilesParameters, TMeta, TSignal>, client?: (schema: DeleteFilesSchema, options: ServiceOperationMutationFnOptions<DeleteFilesBody, DeleteFilesParameters, TMeta, TSignal>) => Promise<RequestFnResponse<DeleteFilesData, DeleteFilesError>>): Promise<RequestFnResponse<DeleteFilesData, DeleteFilesError>>;
12301230
/**
12311231
* Provides access to the current state of a mutation, including its status, any resulting data, and associated errors.
12321232
*
@@ -1686,7 +1686,7 @@ export interface FilesService {
16861686
/** @summary Trash files */
16871687
isMutating<TContext>(filters?: MutationFiltersByParameters<TrashFilesBody, TrashFilesData, TrashFilesParameters, TrashFilesError | Error, TContext> | MutationFiltersByMutationKey<TrashFilesSchema, TrashFilesBody, TrashFilesData, TrashFilesParameters, TrashFilesError | Error, TContext>): number;
16881688
/** @summary Trash files */
1689-
(options: ServiceOperationMutationFnOptions<TrashFilesBody, TrashFilesParameters>, client?: (schema: TrashFilesSchema, options: ServiceOperationMutationFnOptions<TrashFilesBody, TrashFilesParameters>) => Promise<RequestFnResponse<TrashFilesData, TrashFilesError>>): Promise<RequestFnResponse<TrashFilesData, TrashFilesError>>;
1689+
<TMeta extends Record<string, any>, TSignal extends AbortSignal = AbortSignal>(options: ServiceOperationMutationFnOptions<TrashFilesBody, TrashFilesParameters, TMeta, TSignal>, client?: (schema: TrashFilesSchema, options: ServiceOperationMutationFnOptions<TrashFilesBody, TrashFilesParameters, TMeta, TSignal>) => Promise<RequestFnResponse<TrashFilesData, TrashFilesError>>): Promise<RequestFnResponse<TrashFilesData, TrashFilesError>>;
16901690
/**
16911691
* Provides access to the current state of a mutation, including its status, any resulting data, and associated errors.
16921692
*

packages/tanstack-query-react-types/src/service-operation/ServiceOperationMutationFn.ts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,24 @@ export interface ServiceOperationMutationFn<
1010
TMutationParams,
1111
TError,
1212
> {
13-
(
14-
options: ServiceOperationMutationFnOptions<TBody, TMutationParams>,
13+
<
14+
TMeta extends Record<string, any>,
15+
TSignal extends AbortSignal = AbortSignal,
16+
>(
17+
options: ServiceOperationMutationFnOptions<
18+
TBody,
19+
TMutationParams,
20+
TMeta,
21+
TSignal
22+
>,
1523
client?: (
1624
schema: TSchema,
17-
options: ServiceOperationMutationFnOptions<TBody, TMutationParams>
25+
options: ServiceOperationMutationFnOptions<
26+
TBody,
27+
TMutationParams,
28+
TMeta,
29+
TSignal
30+
>
1831
) => Promise<RequestFnResponse<TMutationData, TError>>
1932
): Promise<RequestFnResponse<TMutationData, TError>>;
2033
}
Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,43 @@
11
import type { AreAllOptional } from '@openapi-qraft/tanstack-query-react-types';
22
import type { DeepReadonly } from './DeepReadonly.js';
33

4-
interface QueryFnBaseUrlOptions {
4+
interface QueryFnBaseUrlOptions<
5+
TMeta extends Record<string, any>,
6+
TSignal extends AbortSignal,
7+
> {
58
/**
69
* Base URL to use for the request
710
* @example 'https://api.example.com'
811
*/
912
baseUrl?: string;
13+
meta?: TMeta;
14+
signal?: TSignal;
1015
}
1116

12-
export type ServiceOperationMutationFnOptions<TBody, TParams> =
17+
export type ServiceOperationMutationFnOptions<
18+
TBody,
19+
TParams,
20+
TMeta extends Record<string, any>,
21+
TSignal extends AbortSignal = AbortSignal,
22+
> =
1323
AreAllOptional<TBody> extends true
1424
? AreAllOptional<TParams> extends true
1525
?
1626
| void // todo::try to move void to arguments
1727
| ({
1828
parameters?: DeepReadonly<TParams>;
1929
body?: TBody;
20-
} & QueryFnBaseUrlOptions)
30+
} & QueryFnBaseUrlOptions<TMeta, TSignal>)
2131
: {
2232
parameters: DeepReadonly<TParams>;
2333
body?: TBody;
24-
} & QueryFnBaseUrlOptions
34+
} & QueryFnBaseUrlOptions<TMeta, TSignal>
2535
: AreAllOptional<TParams> extends true
2636
? {
2737
parameters?: DeepReadonly<TParams>;
2838
body: TBody;
29-
} & QueryFnBaseUrlOptions
39+
} & QueryFnBaseUrlOptions<TMeta, TSignal>
3040
: {
3141
parameters: DeepReadonly<TParams>;
3242
body: TBody;
33-
} & QueryFnBaseUrlOptions;
43+
} & QueryFnBaseUrlOptions<TMeta, TSignal>;

0 commit comments

Comments
 (0)