@openapi-qraft/tanstack-query-react-plugin 1.8.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.
- package/CHANGELOG.md +12 -0
- package/README.md +1 -0
- package/dist/__snapshots__/create-api-client.ts.snapshot.d.ts +1 -0
- package/dist/__snapshots__/create-api-client.ts.snapshot.js +88 -0
- package/dist/__snapshots__/create-api-client.ts.snapshot.js.map +1 -0
- package/dist/__snapshots__/index.ts.snapshot.d.ts +1 -0
- package/dist/__snapshots__/index.ts.snapshot.js +13 -0
- package/dist/__snapshots__/index.ts.snapshot.js.map +1 -0
- package/dist/__snapshots__/services/ApprovalPoliciesService.ts.snapshot.d.ts +1 -0
- package/dist/__snapshots__/services/ApprovalPoliciesService.ts.snapshot.js +62 -0
- package/dist/__snapshots__/services/ApprovalPoliciesService.ts.snapshot.js.map +1 -0
- package/dist/__snapshots__/services/FilesService.ts.snapshot.d.ts +1 -0
- package/dist/__snapshots__/services/FilesService.ts.snapshot.js +57 -0
- package/dist/__snapshots__/services/FilesService.ts.snapshot.js.map +1 -0
- package/dist/__snapshots__/services/index.ts.snapshot.d.ts +1 -0
- package/dist/__snapshots__/services/index.ts.snapshot.js +24 -0
- package/dist/__snapshots__/services/index.ts.snapshot.js.map +1 -0
- package/dist/generateCode.d.ts +18 -0
- package/dist/generateCode.js +116 -0
- package/dist/generateCode.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +2 -0
- package/dist/plugin.js +30 -0
- package/dist/plugin.js.map +1 -0
- package/dist/ts-factory/astToString.d.ts +8 -0
- package/dist/ts-factory/astToString.js +14 -0
- package/dist/ts-factory/astToString.js.map +1 -0
- package/dist/ts-factory/getClientFactory.d.ts +7 -0
- package/dist/ts-factory/getClientFactory.js +84 -0
- package/dist/ts-factory/getClientFactory.js.map +1 -0
- package/dist/ts-factory/getIndexFactory.d.ts +5 -0
- package/dist/ts-factory/getIndexFactory.js +17 -0
- package/dist/ts-factory/getIndexFactory.js.map +1 -0
- package/dist/ts-factory/getServiceFactory.d.ts +10 -0
- package/dist/ts-factory/getServiceFactory.js +120 -0
- package/dist/ts-factory/getServiceFactory.js.map +1 -0
- package/dist/ts-factory/getServiceIndexFactory.d.ts +7 -0
- package/dist/ts-factory/getServiceIndexFactory.js +26 -0
- package/dist/ts-factory/getServiceIndexFactory.js.map +1 -0
- package/package.json +48 -0
- package/src/__snapshots__/create-api-client.ts.snapshot.ts +88 -0
- package/src/__snapshots__/index.ts.snapshot.ts +13 -0
- package/src/__snapshots__/services/ApprovalPoliciesService.ts.snapshot.ts +64 -0
- package/src/__snapshots__/services/FilesService.ts.snapshot.ts +57 -0
- package/src/__snapshots__/services/index.ts.snapshot.ts +24 -0
- package/src/generateCode.ts +201 -0
- package/src/index.ts +3 -0
- package/src/plugin.ts +45 -0
- package/src/ts-factory/astToString.ts +34 -0
- package/src/ts-factory/getClientFactory.ts +207 -0
- package/src/ts-factory/getIndexFactory.ts +58 -0
- package/src/ts-factory/getServiceFactory.ts +410 -0
- package/src/ts-factory/getServiceIndexFactory.ts +104 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
export const getIndexFactory = ({ servicesDirName, explicitImportExtensions, }) => {
|
|
3
|
+
const factory = ts.factory;
|
|
4
|
+
const importExtension = explicitImportExtensions ? '.js' : '';
|
|
5
|
+
return [
|
|
6
|
+
factory.createExportDeclaration(undefined, false, factory.createNamedExports([
|
|
7
|
+
factory.createExportSpecifier(false, undefined, factory.createIdentifier('services')),
|
|
8
|
+
]), factory.createStringLiteral(`./${servicesDirName}/index${importExtension}`), undefined),
|
|
9
|
+
factory.createExportDeclaration(undefined, true, factory.createNamedExports([
|
|
10
|
+
factory.createExportSpecifier(false, undefined, factory.createIdentifier('Services')),
|
|
11
|
+
]), factory.createStringLiteral(`./${servicesDirName}/index${importExtension}`), undefined),
|
|
12
|
+
factory.createExportDeclaration(undefined, false, factory.createNamedExports([
|
|
13
|
+
factory.createExportSpecifier(false, undefined, factory.createIdentifier('createAPIClient')),
|
|
14
|
+
]), factory.createStringLiteral(`./create-api-client${importExtension}`), undefined),
|
|
15
|
+
];
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=getIndexFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getIndexFactory.js","sourceRoot":"","sources":["../../src/ts-factory/getIndexFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,eAAe,EACf,wBAAwB,GAIzB,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;IAC3B,MAAM,eAAe,GAAG,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9D,OAAO;QACL,OAAO,CAAC,uBAAuB,CAC7B,SAAS,EACT,KAAK,EACL,OAAO,CAAC,kBAAkB,CAAC;YACzB,OAAO,CAAC,qBAAqB,CAC3B,KAAK,EACL,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CACrC;SACF,CAAC,EACF,OAAO,CAAC,mBAAmB,CACzB,KAAK,eAAe,SAAS,eAAe,EAAE,CAC/C,EACD,SAAS,CACV;QACD,OAAO,CAAC,uBAAuB,CAC7B,SAAS,EACT,IAAI,EACJ,OAAO,CAAC,kBAAkB,CAAC;YACzB,OAAO,CAAC,qBAAqB,CAC3B,KAAK,EACL,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CACrC;SACF,CAAC,EACF,OAAO,CAAC,mBAAmB,CACzB,KAAK,eAAe,SAAS,eAAe,EAAE,CAC/C,EACD,SAAS,CACV;QACD,OAAO,CAAC,uBAAuB,CAC7B,SAAS,EACT,KAAK,EACL,OAAO,CAAC,kBAAkB,CAAC;YACzB,OAAO,CAAC,qBAAqB,CAC3B,KAAK,EACL,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAC5C;SACF,CAAC,EACF,OAAO,CAAC,mBAAmB,CAAC,sBAAsB,eAAe,EAAE,CAAC,EACpE,SAAS,CACV;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ServiceOperation } from '@openapi-qraft/plugin/lib/open-api/getServices';
|
|
2
|
+
import ts from 'typescript';
|
|
3
|
+
export type ServiceImportsFactoryOptions = {
|
|
4
|
+
openapiTypesImportPath: string;
|
|
5
|
+
operationGenericsImportPath: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const getServiceFactory: (service: {
|
|
8
|
+
typeName: string;
|
|
9
|
+
variableName: string;
|
|
10
|
+
}, operations: ServiceOperation[], { openapiTypesImportPath, operationGenericsImportPath, }: ServiceImportsFactoryOptions) => (ts.ImportDeclaration | ts.VariableStatement | ts.InterfaceDeclaration)[];
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
const SERVICE_OPERATION_QUERY = 'ServiceOperationQuery';
|
|
3
|
+
const SERVICE_OPERATION_MUTATION = 'ServiceOperationMutation';
|
|
4
|
+
const factory = ts.factory;
|
|
5
|
+
export const getServiceFactory = (service, operations, { openapiTypesImportPath, operationGenericsImportPath, }) => {
|
|
6
|
+
return [
|
|
7
|
+
getOpenAPISchemaImportsFactory(openapiTypesImportPath),
|
|
8
|
+
getServiceOperationGenericsPathImportsFactory(operationGenericsImportPath, operations),
|
|
9
|
+
getServiceInterfaceFactory(service, operations),
|
|
10
|
+
getServiceVariableFactory(service, operations),
|
|
11
|
+
];
|
|
12
|
+
};
|
|
13
|
+
const getOpenAPISchemaImportsFactory = (schemaTypesPath) => {
|
|
14
|
+
const factory = ts.factory;
|
|
15
|
+
return factory.createImportDeclaration(undefined, factory.createImportClause(true, undefined, factory.createNamedImports([
|
|
16
|
+
factory.createImportSpecifier(false, undefined, factory.createIdentifier('paths')),
|
|
17
|
+
])), factory.createStringLiteral(schemaTypesPath));
|
|
18
|
+
};
|
|
19
|
+
const getServiceOperationGenericsPathImportsFactory = (operationGenericsPath, operations) => {
|
|
20
|
+
const factory = ts.factory;
|
|
21
|
+
const queryMethods = ['get', 'head', 'options']; // todo::make it shared
|
|
22
|
+
return factory.createImportDeclaration(undefined, factory.createImportClause(true, undefined, factory.createNamedImports([
|
|
23
|
+
operations.some((operation) => queryMethods.some((method) => method === operation.method))
|
|
24
|
+
? factory.createImportSpecifier(false, undefined, factory.createIdentifier('ServiceOperationQuery'))
|
|
25
|
+
: null,
|
|
26
|
+
operations.some((operation) => !queryMethods.some((method) => method === operation.method))
|
|
27
|
+
? factory.createImportSpecifier(false, undefined, factory.createIdentifier('ServiceOperationMutation'))
|
|
28
|
+
: null,
|
|
29
|
+
].filter((node) => Boolean(node)))), factory.createStringLiteral(operationGenericsPath));
|
|
30
|
+
};
|
|
31
|
+
const getServiceInterfaceFactory = ({ typeName }, operations) => {
|
|
32
|
+
return factory.createInterfaceDeclaration([factory.createToken(ts.SyntaxKind.ExportKeyword)], factory.createIdentifier(typeName), undefined, undefined, operations.map(getServiceInterfaceOperationFactory));
|
|
33
|
+
};
|
|
34
|
+
const getServiceInterfaceOperationFactory = (operation) => {
|
|
35
|
+
const node = factory.createPropertySignature(undefined, factory.createIdentifier(operation.name), undefined, factory.createTypeReferenceNode(factory.createIdentifier(operation.method === 'get'
|
|
36
|
+
? SERVICE_OPERATION_QUERY
|
|
37
|
+
: SERVICE_OPERATION_MUTATION), [
|
|
38
|
+
getOperationSchemaFactory(operation),
|
|
39
|
+
operation.method !== 'get' ? getOperationBodyFactory(operation) : null,
|
|
40
|
+
getOperationResponseFactory(operation, 'success'),
|
|
41
|
+
getOperationParametersFactory(operation),
|
|
42
|
+
getOperationResponseFactory(operation, 'errors'),
|
|
43
|
+
].filter((node) => Boolean(node))));
|
|
44
|
+
const comment = createMultilineComment([
|
|
45
|
+
operation.deprecated ? '@deprecated' : null,
|
|
46
|
+
operation.summary ? `@summary ${operation.summary}` : null,
|
|
47
|
+
operation.description ? `@description ${operation.description}` : null,
|
|
48
|
+
].filter((comment) => Boolean(comment)));
|
|
49
|
+
if (comment)
|
|
50
|
+
ts.addSyntheticLeadingComment(node, ts.SyntaxKind.MultiLineCommentTrivia, comment, true);
|
|
51
|
+
return node;
|
|
52
|
+
};
|
|
53
|
+
const getOperationSchemaFactory = (operation) => {
|
|
54
|
+
return factory.createTypeLiteralNode([
|
|
55
|
+
factory.createPropertySignature(undefined, factory.createIdentifier('method'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(operation.method))),
|
|
56
|
+
factory.createPropertySignature(undefined, factory.createIdentifier('url'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(operation.path))),
|
|
57
|
+
operation.mediaType
|
|
58
|
+
? factory.createPropertySignature(undefined, factory.createIdentifier('mediaType'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(operation.mediaType)))
|
|
59
|
+
: null,
|
|
60
|
+
].filter((node) => Boolean(node)));
|
|
61
|
+
};
|
|
62
|
+
const getOperationResponseFactory = (operation, type) => {
|
|
63
|
+
if (!operation[type])
|
|
64
|
+
return factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword);
|
|
65
|
+
const responses = Object.entries(operation[type]);
|
|
66
|
+
if (!responses.length)
|
|
67
|
+
return factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword);
|
|
68
|
+
return factory.createUnionTypeNode(responses.map(([statusCode, mediaType]) => {
|
|
69
|
+
if (!mediaType)
|
|
70
|
+
return factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword);
|
|
71
|
+
return factory.createIndexedAccessTypeNode(factory.createIndexedAccessTypeNode(factory.createIndexedAccessTypeNode(factory.createIndexedAccessTypeNode(factory.createIndexedAccessTypeNode(factory.createIndexedAccessTypeNode(factory.createTypeReferenceNode(factory.createIdentifier('paths'), undefined), factory.createLiteralTypeNode(factory.createStringLiteral(operation.path))), factory.createLiteralTypeNode(factory.createStringLiteral(operation.method))), factory.createLiteralTypeNode(factory.createStringLiteral('responses'))), factory.createLiteralTypeNode(factory.createStringLiteral(statusCode))), factory.createLiteralTypeNode(factory.createStringLiteral('content'))), factory.createLiteralTypeNode(factory.createStringLiteral(mediaType)));
|
|
72
|
+
}));
|
|
73
|
+
};
|
|
74
|
+
const getOperationBodyFactory = (operation) => {
|
|
75
|
+
if (!operation.mediaType)
|
|
76
|
+
return factory.createKeywordTypeNode(ts.SyntaxKind.UndefinedKeyword);
|
|
77
|
+
return factory.createIndexedAccessTypeNode(factory.createIndexedAccessTypeNode(factory.createTypeReferenceNode(factory.createIdentifier('NonNullable'), [
|
|
78
|
+
factory.createIndexedAccessTypeNode(factory.createIndexedAccessTypeNode(factory.createIndexedAccessTypeNode(factory.createTypeReferenceNode(factory.createIdentifier('paths'), undefined), factory.createLiteralTypeNode(factory.createStringLiteral(operation.path))), factory.createLiteralTypeNode(factory.createStringLiteral(operation.method))), factory.createLiteralTypeNode(factory.createStringLiteral('requestBody'))),
|
|
79
|
+
]),
|
|
80
|
+
// todo::Add optional NonNullable inference, see `POST /entities/{entity_id}/documents`
|
|
81
|
+
factory.createLiteralTypeNode(factory.createStringLiteral('content'))), factory.createLiteralTypeNode(factory.createStringLiteral(operation.mediaType)));
|
|
82
|
+
};
|
|
83
|
+
const getOperationParametersFactory = (operation) => {
|
|
84
|
+
if (!operation.parameters)
|
|
85
|
+
return factory.createKeywordTypeNode(ts.SyntaxKind.UndefinedKeyword);
|
|
86
|
+
return factory.createIndexedAccessTypeNode(factory.createIndexedAccessTypeNode(factory.createIndexedAccessTypeNode(factory.createTypeReferenceNode(factory.createIdentifier('paths'), undefined), factory.createLiteralTypeNode(factory.createStringLiteral(operation.path))), factory.createLiteralTypeNode(factory.createStringLiteral(operation.method))), factory.createLiteralTypeNode(factory.createStringLiteral('parameters')));
|
|
87
|
+
};
|
|
88
|
+
const getServiceVariableFactory = ({ typeName, variableName }, operations) => {
|
|
89
|
+
return factory.createVariableStatement([factory.createToken(ts.SyntaxKind.ExportKeyword)], factory.createVariableDeclarationList([
|
|
90
|
+
factory.createVariableDeclaration(factory.createIdentifier(variableName), undefined, getServiceVariableTypeFactory({ typeName }), factory.createAsExpression(factory.createObjectLiteralExpression(operations.map(getServiceVariablePropertyFactory), true), factory.createTypeReferenceNode(factory.createIdentifier('const'), undefined))),
|
|
91
|
+
], ts.NodeFlags.Const));
|
|
92
|
+
};
|
|
93
|
+
const getServiceVariableTypeFactory = ({ typeName }) => {
|
|
94
|
+
return factory.createMappedTypeNode(undefined, factory.createTypeParameterDeclaration(undefined, factory.createIdentifier('key'), factory.createTypeOperatorNode(ts.SyntaxKind.KeyOfKeyword, factory.createTypeReferenceNode(factory.createIdentifier(typeName), undefined)), undefined), undefined, undefined, factory.createTypeReferenceNode(factory.createIdentifier('Pick'), [
|
|
95
|
+
factory.createIndexedAccessTypeNode(factory.createTypeReferenceNode(factory.createIdentifier(typeName), undefined), factory.createTypeReferenceNode(factory.createIdentifier('key'), undefined)),
|
|
96
|
+
factory.createLiteralTypeNode(factory.createStringLiteral('schema')),
|
|
97
|
+
]), undefined);
|
|
98
|
+
};
|
|
99
|
+
const getServiceVariablePropertyFactory = (operation) => {
|
|
100
|
+
return factory.createPropertyAssignment(factory.createIdentifier(operation.name), factory.createObjectLiteralExpression([
|
|
101
|
+
factory.createPropertyAssignment(factory.createIdentifier('schema'), factory.createObjectLiteralExpression([
|
|
102
|
+
factory.createPropertyAssignment(factory.createIdentifier('method'), factory.createStringLiteral(operation.method)),
|
|
103
|
+
factory.createPropertyAssignment(factory.createIdentifier('url'), factory.createStringLiteral(operation.path)),
|
|
104
|
+
operation.mediaType
|
|
105
|
+
? factory.createPropertyAssignment(factory.createIdentifier('mediaType'), factory.createStringLiteral(operation.mediaType))
|
|
106
|
+
: null,
|
|
107
|
+
].filter((node) => Boolean(node)), true)),
|
|
108
|
+
], true));
|
|
109
|
+
};
|
|
110
|
+
const createMultilineComment = (comment) => {
|
|
111
|
+
const output = comment.flatMap((line) => line.includes('\n') ? line.split('\n') : line);
|
|
112
|
+
if (output.length) {
|
|
113
|
+
const text = output.length === 1
|
|
114
|
+
? `* ${output.join('\n')} `
|
|
115
|
+
: `*\n * ${output.join('\n * ')}\n `;
|
|
116
|
+
return text.replace(/\*\//g, '*\\/'); // prevent inner comments from leaking
|
|
117
|
+
}
|
|
118
|
+
return '';
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=getServiceFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getServiceFactory.js","sourceRoot":"","sources":["../../src/ts-factory/getServiceFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Service } from '@openapi-qraft/plugin/lib/open-api/getServices';
|
|
2
|
+
import ts from 'typescript';
|
|
3
|
+
type Options = {
|
|
4
|
+
explicitImportExtensions: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare const getServiceIndexFactory: (services: Service[], options: Options) => (ts.ImportDeclaration | ts.VariableStatement | ts.TypeAliasDeclaration)[];
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
export const getServiceIndexFactory = (services, options) => {
|
|
3
|
+
return [
|
|
4
|
+
...getServicesImportsFactory(services, options),
|
|
5
|
+
getServiceIndexInterfaceFactory(services),
|
|
6
|
+
getServiceIndexVariableFactory(services),
|
|
7
|
+
];
|
|
8
|
+
};
|
|
9
|
+
const getServiceIndexInterfaceFactory = (services) => {
|
|
10
|
+
const factory = ts.factory;
|
|
11
|
+
return factory.createTypeAliasDeclaration([factory.createToken(ts.SyntaxKind.ExportKeyword)], factory.createIdentifier('Services'), undefined, factory.createTypeLiteralNode(services.map(({ name, typeName }) => factory.createPropertySignature(undefined, factory.createIdentifier(name), undefined, factory.createTypeReferenceNode(factory.createIdentifier(typeName), undefined)))));
|
|
12
|
+
};
|
|
13
|
+
const getServiceIndexVariableFactory = (services) => {
|
|
14
|
+
const factory = ts.factory;
|
|
15
|
+
return factory.createVariableStatement([factory.createToken(ts.SyntaxKind.ExportKeyword)], factory.createVariableDeclarationList([
|
|
16
|
+
factory.createVariableDeclaration(factory.createIdentifier('services'), undefined, undefined, factory.createAsExpression(factory.createObjectLiteralExpression(services.map(({ name, variableName }) => factory.createPropertyAssignment(factory.createIdentifier(name), factory.createIdentifier(variableName))), true), factory.createTypeReferenceNode(factory.createIdentifier('const'), undefined))),
|
|
17
|
+
], ts.NodeFlags.Const));
|
|
18
|
+
};
|
|
19
|
+
const getServicesImportsFactory = (services, { explicitImportExtensions }) => {
|
|
20
|
+
const factory = ts.factory;
|
|
21
|
+
return services.map(({ variableName, typeName, fileBaseName }) => factory.createImportDeclaration(undefined, factory.createImportClause(false, undefined, factory.createNamedImports([
|
|
22
|
+
factory.createImportSpecifier(false, undefined, factory.createIdentifier(typeName)),
|
|
23
|
+
factory.createImportSpecifier(false, undefined, factory.createIdentifier(variableName)),
|
|
24
|
+
])), factory.createStringLiteral(`./${fileBaseName}${explicitImportExtensions ? '.js' : ''}`)));
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=getServiceIndexFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getServiceIndexFactory.js","sourceRoot":"","sources":["../../src/ts-factory/getServiceIndexFactory.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@openapi-qraft/tanstack-query-react-plugin",
|
|
3
|
+
"version": "1.8.0",
|
|
4
|
+
"packageManager": "yarn@4.0.2",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "rimraf dist/ && tsc --project tsconfig.build.json",
|
|
8
|
+
"dev": "yarn build --watch",
|
|
9
|
+
"test": "vitest run",
|
|
10
|
+
"typecheck": "tsc --noEmit",
|
|
11
|
+
"lint": "eslint"
|
|
12
|
+
},
|
|
13
|
+
"exports": {
|
|
14
|
+
"./package.json": "./package.json",
|
|
15
|
+
".": "./dist/index.js",
|
|
16
|
+
"./*": "./dist/*.js"
|
|
17
|
+
},
|
|
18
|
+
"typesVersions": {
|
|
19
|
+
"*": {
|
|
20
|
+
"*": [
|
|
21
|
+
"dist/*"
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@openapi-qraft/plugin": "^1.8.0",
|
|
27
|
+
"typescript": "^5.3.3"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@openapi-qraft/eslint-config": "~1.0.0",
|
|
31
|
+
"@types/mock-fs": "^4.13.4",
|
|
32
|
+
"eslint": "^9.0.0",
|
|
33
|
+
"mock-fs": "^5.2.0",
|
|
34
|
+
"rimraf": "^5.0.5",
|
|
35
|
+
"vitest": "^1.4.0"
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"dist",
|
|
39
|
+
"src",
|
|
40
|
+
"!dist/**/*.test.*",
|
|
41
|
+
"!dist/**/*.spec.*",
|
|
42
|
+
"!src/**/*.test.*",
|
|
43
|
+
"!src/**/*.spec.*"
|
|
44
|
+
],
|
|
45
|
+
"publishConfig": {
|
|
46
|
+
"access": "public"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { expect } from 'vitest';
|
|
3
|
+
|
|
4
|
+
export default function () {
|
|
5
|
+
expect(fs.readFileSync('/mock-fs/create-api-client.ts', 'utf-8'))
|
|
6
|
+
.toMatchInlineSnapshot(`
|
|
7
|
+
"/* generated using @openapi-qraft/cli -- do no edit */
|
|
8
|
+
/* istanbul ignore file */
|
|
9
|
+
import { qraftAPIClient, QraftClientOptions } from "@openapi-qraft/react";
|
|
10
|
+
import { getInfiniteQueryData } from "@openapi-qraft/react/callbacks/getInfiniteQueryData";
|
|
11
|
+
import { getInfiniteQueryKey } from "@openapi-qraft/react/callbacks/getInfiniteQueryKey";
|
|
12
|
+
import { getMutationKey } from "@openapi-qraft/react/callbacks/getMutationKey";
|
|
13
|
+
import { getQueryData } from "@openapi-qraft/react/callbacks/getQueryData";
|
|
14
|
+
import { getQueriesData } from "@openapi-qraft/react/callbacks/getQueriesData";
|
|
15
|
+
import { getQueryKey } from "@openapi-qraft/react/callbacks/getQueryKey";
|
|
16
|
+
import { mutationFn } from "@openapi-qraft/react/callbacks/mutationFn";
|
|
17
|
+
import { queryFn } from "@openapi-qraft/react/callbacks/queryFn";
|
|
18
|
+
import { setInfiniteQueryData } from "@openapi-qraft/react/callbacks/setInfiniteQueryData";
|
|
19
|
+
import { setQueryData } from "@openapi-qraft/react/callbacks/setQueryData";
|
|
20
|
+
import { setQueriesData } from "@openapi-qraft/react/callbacks/setQueriesData";
|
|
21
|
+
import { useInfiniteQuery } from "@openapi-qraft/react/callbacks/useInfiniteQuery";
|
|
22
|
+
import { useMutation } from "@openapi-qraft/react/callbacks/useMutation";
|
|
23
|
+
import { useQuery } from "@openapi-qraft/react/callbacks/useQuery";
|
|
24
|
+
import { useSuspenseQuery } from "@openapi-qraft/react/callbacks/useSuspenseQuery";
|
|
25
|
+
import { useSuspenseInfiniteQuery } from "@openapi-qraft/react/callbacks/useSuspenseInfiniteQuery";
|
|
26
|
+
import { useMutationState } from "@openapi-qraft/react/callbacks/useMutationState";
|
|
27
|
+
import { useIsMutating } from "@openapi-qraft/react/callbacks/useIsMutating";
|
|
28
|
+
import { useQueries } from "@openapi-qraft/react/callbacks/useQueries";
|
|
29
|
+
import { useSuspenseQueries } from "@openapi-qraft/react/callbacks/useSuspenseQueries";
|
|
30
|
+
import { invalidateQueries } from "@openapi-qraft/react/callbacks/invalidateQueries";
|
|
31
|
+
import { cancelQueries } from "@openapi-qraft/react/callbacks/cancelQueries";
|
|
32
|
+
import { resetQueries } from "@openapi-qraft/react/callbacks/resetQueries";
|
|
33
|
+
import { removeQueries } from "@openapi-qraft/react/callbacks/removeQueries";
|
|
34
|
+
import { refetchQueries } from "@openapi-qraft/react/callbacks/refetchQueries";
|
|
35
|
+
import { isFetching } from "@openapi-qraft/react/callbacks/isFetching";
|
|
36
|
+
import { isMutating } from "@openapi-qraft/react/callbacks/isMutating";
|
|
37
|
+
import { useIsFetching } from "@openapi-qraft/react/callbacks/useIsFetching";
|
|
38
|
+
import { fetchQuery } from "@openapi-qraft/react/callbacks/fetchQuery";
|
|
39
|
+
import { prefetchQuery } from "@openapi-qraft/react/callbacks/prefetchQuery";
|
|
40
|
+
import { fetchInfiniteQuery } from "@openapi-qraft/react/callbacks/fetchInfiniteQuery";
|
|
41
|
+
import { prefetchInfiniteQuery } from "@openapi-qraft/react/callbacks/prefetchInfiniteQuery";
|
|
42
|
+
import { getQueryState } from "@openapi-qraft/react/callbacks/getQueryState";
|
|
43
|
+
import { getInfiniteQueryState } from "@openapi-qraft/react/callbacks/getInfiniteQueryState";
|
|
44
|
+
import { operationInvokeFn } from "@openapi-qraft/react/callbacks/operationInvokeFn";
|
|
45
|
+
import { services, Services } from "./services/index.js";
|
|
46
|
+
const callbacks = {
|
|
47
|
+
getInfiniteQueryData,
|
|
48
|
+
getInfiniteQueryKey,
|
|
49
|
+
getMutationKey,
|
|
50
|
+
getQueryData,
|
|
51
|
+
getQueriesData,
|
|
52
|
+
getQueryKey,
|
|
53
|
+
mutationFn,
|
|
54
|
+
queryFn,
|
|
55
|
+
setInfiniteQueryData,
|
|
56
|
+
setQueryData,
|
|
57
|
+
setQueriesData,
|
|
58
|
+
useInfiniteQuery,
|
|
59
|
+
useMutation,
|
|
60
|
+
useQuery,
|
|
61
|
+
useSuspenseQuery,
|
|
62
|
+
useSuspenseInfiniteQuery,
|
|
63
|
+
useMutationState,
|
|
64
|
+
useIsMutating,
|
|
65
|
+
useQueries,
|
|
66
|
+
useSuspenseQueries,
|
|
67
|
+
invalidateQueries,
|
|
68
|
+
cancelQueries,
|
|
69
|
+
resetQueries,
|
|
70
|
+
removeQueries,
|
|
71
|
+
refetchQueries,
|
|
72
|
+
isFetching,
|
|
73
|
+
isMutating,
|
|
74
|
+
useIsFetching,
|
|
75
|
+
fetchQuery,
|
|
76
|
+
prefetchQuery,
|
|
77
|
+
fetchInfiniteQuery,
|
|
78
|
+
prefetchInfiniteQuery,
|
|
79
|
+
getQueryState,
|
|
80
|
+
getInfiniteQueryState,
|
|
81
|
+
operationInvokeFn
|
|
82
|
+
};
|
|
83
|
+
export function createAPIClient(options?: QraftClientOptions): Services {
|
|
84
|
+
return qraftAPIClient<Services, typeof callbacks>(services, callbacks, options);
|
|
85
|
+
}
|
|
86
|
+
"
|
|
87
|
+
`);
|
|
88
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { expect } from 'vitest';
|
|
3
|
+
|
|
4
|
+
export default function () {
|
|
5
|
+
expect(fs.readFileSync('/mock-fs/index.ts', 'utf-8')).toMatchInlineSnapshot(`
|
|
6
|
+
"/* generated using @openapi-qraft/cli -- do no edit */
|
|
7
|
+
/* istanbul ignore file */
|
|
8
|
+
export { services } from "./services/index.js";
|
|
9
|
+
export type { Services } from "./services/index.js";
|
|
10
|
+
export { createAPIClient } from "./create-api-client.js";
|
|
11
|
+
"
|
|
12
|
+
`);
|
|
13
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { expect } from 'vitest';
|
|
3
|
+
|
|
4
|
+
export default function () {
|
|
5
|
+
expect(
|
|
6
|
+
fs.readFileSync('/mock-fs/services/ApprovalPoliciesService.ts', 'utf-8')
|
|
7
|
+
).toMatchInlineSnapshot(`
|
|
8
|
+
"/* generated using @openapi-qraft/cli -- do no edit */
|
|
9
|
+
/* istanbul ignore file */
|
|
10
|
+
import type { paths } from "../../openapi.js";
|
|
11
|
+
import type { ServiceOperationQuery, ServiceOperationMutation } from "@openapi-qraft/react";
|
|
12
|
+
export interface ApprovalPoliciesService {
|
|
13
|
+
/**
|
|
14
|
+
* @summary Get an approval policy by ID
|
|
15
|
+
* @description Retrieve a specific approval policy.
|
|
16
|
+
*/
|
|
17
|
+
getApprovalPoliciesId: ServiceOperationQuery<{
|
|
18
|
+
method: "get";
|
|
19
|
+
url: "/approval_policies/{approval_policy_id}";
|
|
20
|
+
}, paths["/approval_policies/{approval_policy_id}"]["get"]["responses"]["200"]["content"]["application/json"], paths["/approval_policies/{approval_policy_id}"]["get"]["parameters"], paths["/approval_policies/{approval_policy_id}"]["get"]["responses"]["401"]["content"]["application/json"] | paths["/approval_policies/{approval_policy_id}"]["get"]["responses"]["422"]["content"]["application/json"] | paths["/approval_policies/{approval_policy_id}"]["get"]["responses"]["default"]["content"]["application/json"]>;
|
|
21
|
+
/**
|
|
22
|
+
* @summary Delete an approval policy
|
|
23
|
+
* @description Delete an existing approval policy.
|
|
24
|
+
*/
|
|
25
|
+
deleteApprovalPoliciesId: ServiceOperationMutation<{
|
|
26
|
+
method: "delete";
|
|
27
|
+
url: "/approval_policies/{approval_policy_id}";
|
|
28
|
+
}, undefined, paths["/approval_policies/{approval_policy_id}"]["delete"]["responses"]["200"]["content"]["application/json"], paths["/approval_policies/{approval_policy_id}"]["delete"]["parameters"], paths["/approval_policies/{approval_policy_id}"]["delete"]["responses"]["401"]["content"]["application/json"] | paths["/approval_policies/{approval_policy_id}"]["delete"]["responses"]["422"]["content"]["application/json"] | paths["/approval_policies/{approval_policy_id}"]["delete"]["responses"]["default"]["content"]["application/json"]>;
|
|
29
|
+
/**
|
|
30
|
+
* @summary Update an approval policy
|
|
31
|
+
* @description Update an existing approval policy.
|
|
32
|
+
*/
|
|
33
|
+
patchApprovalPoliciesId: ServiceOperationMutation<{
|
|
34
|
+
method: "patch";
|
|
35
|
+
url: "/approval_policies/{approval_policy_id}";
|
|
36
|
+
mediaType: "application/json";
|
|
37
|
+
}, NonNullable<paths["/approval_policies/{approval_policy_id}"]["patch"]["requestBody"]>["content"]["application/json"], paths["/approval_policies/{approval_policy_id}"]["patch"]["responses"]["200"]["content"]["application/json"], paths["/approval_policies/{approval_policy_id}"]["patch"]["parameters"], paths["/approval_policies/{approval_policy_id}"]["patch"]["responses"]["401"]["content"]["application/json"] | paths["/approval_policies/{approval_policy_id}"]["patch"]["responses"]["422"]["content"]["application/json"] | paths["/approval_policies/{approval_policy_id}"]["patch"]["responses"]["default"]["content"]["application/json"]>;
|
|
38
|
+
}
|
|
39
|
+
export const approvalPoliciesService: {
|
|
40
|
+
[key in keyof ApprovalPoliciesService]: Pick<ApprovalPoliciesService[key], "schema">;
|
|
41
|
+
} = {
|
|
42
|
+
getApprovalPoliciesId: {
|
|
43
|
+
schema: {
|
|
44
|
+
method: "get",
|
|
45
|
+
url: "/approval_policies/{approval_policy_id}"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
deleteApprovalPoliciesId: {
|
|
49
|
+
schema: {
|
|
50
|
+
method: "delete",
|
|
51
|
+
url: "/approval_policies/{approval_policy_id}"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
patchApprovalPoliciesId: {
|
|
55
|
+
schema: {
|
|
56
|
+
method: "patch",
|
|
57
|
+
url: "/approval_policies/{approval_policy_id}",
|
|
58
|
+
mediaType: "application/json"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
} as const;
|
|
62
|
+
"
|
|
63
|
+
`);
|
|
64
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { expect } from 'vitest';
|
|
3
|
+
|
|
4
|
+
export default function () {
|
|
5
|
+
expect(fs.readFileSync('/mock-fs/services/FilesService.ts', 'utf-8'))
|
|
6
|
+
.toMatchInlineSnapshot(`
|
|
7
|
+
"/* generated using @openapi-qraft/cli -- do no edit */
|
|
8
|
+
/* istanbul ignore file */
|
|
9
|
+
import type { paths } from "../../openapi.js";
|
|
10
|
+
import type { ServiceOperationQuery, ServiceOperationMutation } from "@openapi-qraft/react";
|
|
11
|
+
export interface FilesService {
|
|
12
|
+
/** @summary Get a files by ID */
|
|
13
|
+
getFiles: ServiceOperationQuery<{
|
|
14
|
+
method: "get";
|
|
15
|
+
url: "/files";
|
|
16
|
+
}, paths["/files"]["get"]["responses"]["200"]["content"]["application/json"], paths["/files"]["get"]["parameters"], paths["/files"]["get"]["responses"]["405"]["content"]["application/json"] | paths["/files"]["get"]["responses"]["422"]["content"]["application/json"] | paths["/files"]["get"]["responses"]["default"]["content"]["application/json"]>;
|
|
17
|
+
/** @summary Upload a files by ID */
|
|
18
|
+
postFiles: ServiceOperationMutation<{
|
|
19
|
+
method: "post";
|
|
20
|
+
url: "/files";
|
|
21
|
+
mediaType: "multipart/form-data";
|
|
22
|
+
}, NonNullable<paths["/files"]["post"]["requestBody"]>["content"]["multipart/form-data"], paths["/files"]["post"]["responses"]["200"]["content"]["application/json"], undefined, paths["/files"]["post"]["responses"]["default"]["content"]["application/json"]>;
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated
|
|
25
|
+
* @summary Get a file list
|
|
26
|
+
*/
|
|
27
|
+
getFileList: ServiceOperationQuery<{
|
|
28
|
+
method: "get";
|
|
29
|
+
url: "/files/list";
|
|
30
|
+
}, paths["/files/list"]["get"]["responses"]["200"]["content"]["application/json"], paths["/files/list"]["get"]["parameters"], paths["/files/list"]["get"]["responses"]["default"]["content"]["application/json"]>;
|
|
31
|
+
}
|
|
32
|
+
export const filesService: {
|
|
33
|
+
[key in keyof FilesService]: Pick<FilesService[key], "schema">;
|
|
34
|
+
} = {
|
|
35
|
+
getFiles: {
|
|
36
|
+
schema: {
|
|
37
|
+
method: "get",
|
|
38
|
+
url: "/files"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
postFiles: {
|
|
42
|
+
schema: {
|
|
43
|
+
method: "post",
|
|
44
|
+
url: "/files",
|
|
45
|
+
mediaType: "multipart/form-data"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
getFileList: {
|
|
49
|
+
schema: {
|
|
50
|
+
method: "get",
|
|
51
|
+
url: "/files/list"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
} as const;
|
|
55
|
+
"
|
|
56
|
+
`);
|
|
57
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { expect } from 'vitest';
|
|
3
|
+
|
|
4
|
+
export default function () {
|
|
5
|
+
expect(fs.readFileSync('/mock-fs/services/index.ts', 'utf-8'))
|
|
6
|
+
.toMatchInlineSnapshot(`
|
|
7
|
+
"/* generated using @openapi-qraft/cli -- do no edit */
|
|
8
|
+
/* istanbul ignore file */
|
|
9
|
+
import { EntitiesService, entitiesService } from "./EntitiesService.js";
|
|
10
|
+
import { ApprovalPoliciesService, approvalPoliciesService } from "./ApprovalPoliciesService.js";
|
|
11
|
+
import { FilesService, filesService } from "./FilesService.js";
|
|
12
|
+
export type Services = {
|
|
13
|
+
entities: EntitiesService;
|
|
14
|
+
approvalPolicies: ApprovalPoliciesService;
|
|
15
|
+
files: FilesService;
|
|
16
|
+
};
|
|
17
|
+
export const services = {
|
|
18
|
+
entities: entitiesService,
|
|
19
|
+
approvalPolicies: approvalPoliciesService,
|
|
20
|
+
files: filesService
|
|
21
|
+
} as const;
|
|
22
|
+
"
|
|
23
|
+
`);
|
|
24
|
+
}
|