@openapi-qraft/plugin 2.5.0-beta.0 → 2.5.0-beta.2
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/dist/lib/open-api/OpenAPISchemaType.d.ts +3 -1
- package/dist/lib/open-api/OpenAPISchemaType.d.ts.map +1 -1
- package/dist/lib/open-api/OpenAPIService.d.ts +12 -2
- package/dist/lib/open-api/OpenAPIService.d.ts.map +1 -1
- package/dist/lib/open-api/getContent.d.ts +3 -1
- package/dist/lib/open-api/getContent.d.ts.map +1 -1
- package/dist/lib/open-api/getContent.js +4 -20
- package/dist/lib/open-api/getContent.js.map +1 -1
- package/dist/lib/open-api/getServices.d.ts.map +1 -1
- package/dist/lib/open-api/getServices.js +1 -4
- package/dist/lib/open-api/getServices.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/package.json +2 -2
- package/src/lib/open-api/OpenAPISchemaType.ts +6 -4
- package/src/lib/open-api/OpenAPIService.ts +12 -2
- package/src/lib/open-api/getContent.ts +10 -23
- package/src/lib/open-api/getServices.ts +7 -6
- package/src/packageVersion.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @openapi-qraft/plugin
|
|
2
2
|
|
|
3
|
+
## 2.5.0-beta.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- ece9c58: Generate types for empty responses
|
|
8
|
+
|
|
9
|
+
Now, for both successful and error responses, we generate types for all possible response outcomes.
|
|
10
|
+
For instance, if a 204 (No Content) response is possible, we now explicitly generate a type for it
|
|
11
|
+
(represented as `undefined` in the generated code) instead of omitting it.
|
|
12
|
+
|
|
13
|
+
## 2.5.0-beta.1
|
|
14
|
+
|
|
3
15
|
## 2.5.0-beta.0
|
|
4
16
|
|
|
5
17
|
## 2.4.1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAPISchemaType.d.ts","sourceRoot":"","sources":["../../../src/lib/open-api/OpenAPISchemaType.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,EAAE;QACL,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,CAAC,MAAM,EAAE,MAAM,GAAG;gBAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;gBAChB,WAAW,CAAC,EAAE,MAAM,CAAC;gBACrB,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,WAAW,CAAC,EAAE,MAAM,CAAC;gBACrB,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxB,UAAU,CAAC,EAAE,OAAO,CAAC;gBACrB,WAAW,CAAC,EAAE;oBACZ,OAAO,CAAC,EAAE;wBACR,CAAC,WAAW,EAAE,MAAM,GAAG;4BACrB,MAAM,EAAE,GAAG,CAAC;yBACb,CAAC;qBACH,CAAC;oBACF,IAAI,CAAC,EAAE,MAAM,CAAC;oBACd,QAAQ,CAAC,EAAE,OAAO,CAAC;iBACpB,CAAC;gBACF,SAAS,EAAE;qBACR,UAAU,IAAI,MAAM,GAAG,SAAS,GAAG;wBAClC,WAAW,EAAE,MAAM,CAAC;wBACpB,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"OpenAPISchemaType.d.ts","sourceRoot":"","sources":["../../../src/lib/open-api/OpenAPISchemaType.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,EAAE;QACL,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,CAAC,MAAM,EAAE,MAAM,GAAG;gBAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;gBAChB,WAAW,CAAC,EAAE,MAAM,CAAC;gBACrB,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,WAAW,CAAC,EAAE,MAAM,CAAC;gBACrB,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxB,UAAU,CAAC,EAAE,OAAO,CAAC;gBACrB,WAAW,CAAC,EAAE;oBACZ,OAAO,CAAC,EAAE;wBACR,CAAC,WAAW,EAAE,MAAM,GAAG;4BACrB,MAAM,EAAE,GAAG,CAAC;yBACb,CAAC;qBACH,CAAC;oBACF,IAAI,CAAC,EAAE,MAAM,CAAC;oBACd,QAAQ,CAAC,EAAE,OAAO,CAAC;iBACpB,CAAC;gBACF,SAAS,EAAE;qBACR,UAAU,IAAI,MAAM,GAAG,SAAS,GAAG;wBAClC,WAAW,EAAE,MAAM,CAAC;wBACpB,OAAO,CAAC,EAAE;4BACR,CAAC,WAAW,EAAE,MAAM,GAChB;gCACE,MAAM,EAAE,GAAG,CAAC;6BACb,GACD;gCAAE,IAAI,EAAE,MAAM,CAAA;6BAAE,CAAC;yBACtB,CAAC;qBACH;iBACF,CAAC;gBACF,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;aACxD,CAAC;SACH,CAAC;KACH,CAAC;IACF,UAAU,EAAE;QACV,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;KAC7C,CAAC;CACH,CAAC"}
|
|
@@ -13,9 +13,19 @@ export type ServiceOperation = {
|
|
|
13
13
|
description: string | undefined;
|
|
14
14
|
summary: string | undefined;
|
|
15
15
|
deprecated: boolean | undefined;
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Contains error response types like 400, 401, 404, 500, etc.
|
|
18
|
+
* The mapping contains status codes as keys and response types as values.
|
|
19
|
+
* If the response type is `null`, it typically indicates an error response with no content.
|
|
20
|
+
*/
|
|
21
|
+
errors: Record<string, string[] | null | undefined>;
|
|
17
22
|
requestBody: OpenAPISchemaType['paths'][string]['post']['requestBody'];
|
|
18
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Contains successful response types like 200, 201, 204, etc.
|
|
25
|
+
* The mapping contains status codes as keys and response types as values.
|
|
26
|
+
* If the response type is `null`, it typically indicates a 204-like response with no content.
|
|
27
|
+
*/
|
|
28
|
+
success: Record<string, string[] | null | undefined>;
|
|
19
29
|
parameters: {
|
|
20
30
|
name: string;
|
|
21
31
|
in: 'header' | 'query' | 'cookie';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAPIService.d.ts","sourceRoot":"","sources":["../../../src/lib/open-api/OpenAPIService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EACF,KAAK,GACL,KAAK,GACL,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenAPIService.d.ts","sourceRoot":"","sources":["../../../src/lib/open-api/OpenAPIService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EACF,KAAK,GACL,KAAK,GACL,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACpD,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;IACvE;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACrD,UAAU,EACN;QACE,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;QAClC,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,GAAG,CAAC;QACZ,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;KAC7B,EAAE,GACH,SAAS,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC;CACnE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getContent.d.ts","sourceRoot":"","sources":["../../../src/lib/open-api/getContent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getContent.d.ts","sourceRoot":"","sources":["../../../src/lib/open-api/getContent.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,YAE1B;IACE,CAAC,WAAW,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;CAChE,GACD,SAAS,oBAOd,CAAC"}
|
|
@@ -1,23 +1,7 @@
|
|
|
1
|
-
const BASIC_MEDIA_TYPES = [
|
|
2
|
-
'application/json-patch+json',
|
|
3
|
-
'application/json',
|
|
4
|
-
'application/x-www-form-urlencoded',
|
|
5
|
-
'text/json',
|
|
6
|
-
'text/plain',
|
|
7
|
-
'multipart/form-data',
|
|
8
|
-
'multipart/mixed',
|
|
9
|
-
'multipart/related',
|
|
10
|
-
'multipart/batch',
|
|
11
|
-
];
|
|
12
1
|
export const getContentMediaType = (content) => {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
})
|
|
18
|
-
.find((mediaType) => content[mediaType]?.schema);
|
|
19
|
-
if (basicMediaTypeWithSchema)
|
|
20
|
-
return basicMediaTypeWithSchema;
|
|
21
|
-
return Object.keys(content).find((mediaType) => content[mediaType]?.schema);
|
|
2
|
+
const mediaTypes = Object.keys(content || {});
|
|
3
|
+
if (!mediaTypes.length)
|
|
4
|
+
return null;
|
|
5
|
+
return mediaTypes;
|
|
22
6
|
};
|
|
23
7
|
//# sourceMappingURL=getContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getContent.js","sourceRoot":"","sources":["../../../src/lib/open-api/getContent.ts"],"names":[],"mappings":"AAAA,MAAM,
|
|
1
|
+
{"version":3,"file":"getContent.js","sourceRoot":"","sources":["../../../src/lib/open-api/getContent.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAIa,EACb,EAAE;IACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAE9C,IAAI,CAAC,UAAU,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEpC,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getServices.d.ts","sourceRoot":"","sources":["../../../src/lib/open-api/getServices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,OAAO,EAEL,+BAA+B,EAChC,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EACL,cAAc,EACd,gBAAgB,IAAI,sBAAsB,EAC3C,MAAM,qBAAqB,CAAC;AAI7B,MAAM,MAAM,eAAe,GAAG,+BAA+B,GAAG,MAAM,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,eAAO,MAAM,WAAW,gBACT,iBAAiB,0CAI3B,oBAAoB,
|
|
1
|
+
{"version":3,"file":"getServices.d.ts","sourceRoot":"","sources":["../../../src/lib/open-api/getServices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,OAAO,EAEL,+BAA+B,EAChC,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EACL,cAAc,EACd,gBAAgB,IAAI,sBAAsB,EAC3C,MAAM,qBAAqB,CAAC;AAI7B,MAAM,MAAM,eAAe,GAAG,+BAA+B,GAAG,MAAM,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,eAAO,MAAM,WAAW,gBACT,iBAAiB,0CAI3B,oBAAoB,qBA6GxB,CAAC;AAEF,eAAO,MAAM,eAAe,WAClB,OAAO,KACd,MAAM,IAAI,CAAC,OAAO,oBAAoB,EAAE,MAAM,CAG9C,CAAC;AAEJ,QAAA,MAAM,oBAAoB,gFASqC,CAAC"}
|
|
@@ -20,9 +20,6 @@ export const getServices = (openApiJson, { postfixServices = 'Service', serviceN
|
|
|
20
20
|
}
|
|
21
21
|
const methodOperation = paths[path][method];
|
|
22
22
|
const { success, errors } = Object.entries(methodOperation.responses).reduce((acc, [statusCode, response]) => {
|
|
23
|
-
if (!response.content || typeof response.content !== 'object') {
|
|
24
|
-
return acc;
|
|
25
|
-
}
|
|
26
23
|
const statusType = statusCode !== 'default' && // See "default" response https://swagger.io/docs/specification/describing-responses/#default
|
|
27
24
|
Number(statusCode) < 400
|
|
28
25
|
? 'success'
|
|
@@ -34,7 +31,7 @@ export const getServices = (openApiJson, { postfixServices = 'Service', serviceN
|
|
|
34
31
|
[statusCode]: getContentMediaType(response.content),
|
|
35
32
|
},
|
|
36
33
|
};
|
|
37
|
-
}, {});
|
|
34
|
+
}, { errors: {}, success: {} });
|
|
38
35
|
const serviceFallbackBaseName = 'Default';
|
|
39
36
|
const serviceNames = serviceNameBase === 'tags'
|
|
40
37
|
? getServiceNamesByOperationTags(paths[path][method]?.tags, serviceFallbackBaseName)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getServices.js","sourceRoot":"","sources":["../../../src/lib/open-api/getServices.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,kCAAkC,GAEnC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAKrF,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAmBvE,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,WAA8B,EAC9B,EACE,eAAe,GAAG,SAAS,EAC3B,eAAe,GAAG,aAAa,MACP,EAAE,EAC5B,EAAE;IACF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;IAEhC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;YAAE,SAAS;QAEjE,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAE,SAAS;YAEzE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CACV,aAAa,IAAI,kBAAkB,MAAM,oBAAoB,CAC9D,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;YAE5C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CACxC,eAAe,CAAC,SAAS,CAC1B,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"getServices.js","sourceRoot":"","sources":["../../../src/lib/open-api/getServices.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,kCAAkC,GAEnC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAKrF,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAmBvE,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,WAA8B,EAC9B,EACE,eAAe,GAAG,SAAS,EAC3B,eAAe,GAAG,aAAa,MACP,EAAE,EAC5B,EAAE;IACF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;IAEhC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;YAAE,SAAS;QAEjE,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAE,SAAS;YAEzE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CACV,aAAa,IAAI,kBAAkB,MAAM,oBAAoB,CAC9D,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;YAE5C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CACxC,eAAe,CAAC,SAAS,CAC1B,CAAC,MAAM,CAMN,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE;gBAC9B,MAAM,UAAU,GACd,UAAU,KAAK,SAAS,IAAI,6FAA6F;oBACzH,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG;oBACtB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,QAAQ,CAAC;gBAEf,OAAO;oBACL,GAAG,GAAG;oBACN,CAAC,UAAU,CAAC,EAAE;wBACZ,GAAG,GAAG,CAAC,UAAU,CAAC;wBAClB,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;qBACpD;iBACF,CAAC;YACJ,CAAC,EACD,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAC5B,CAAC;YAEF,MAAM,uBAAuB,GAAG,SAAS,CAAC;YAE1C,MAAM,YAAY,GAChB,eAAe,KAAK,MAAM;gBACxB,CAAC,CAAC,8BAA8B,CAC5B,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EACzB,uBAAuB,CACxB;gBACH,CAAC,CAAC,kCAAkC,CAChC,IAAI,EACJ,eAAe,EACf,uBAAuB,CACxB,CAAC;YAER,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;wBACjB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;wBACrB,YAAY,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE;4BAC/B,4BAA4B,EAAE,KAAK;yBACpC,CAAC,GAAG,eAAe,EAAE;wBACtB,QAAQ,EAAE,GAAG,IAAI,GAAG,eAAe,EAAE;wBACrC,YAAY,EAAE,GAAG,IAAI,GAAG,eAAe,EAAE;wBACzC,UAAU,EAAE,EAAE;qBACf,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,UAAU,CAAC,IAAI,CAAC;oBAClC,MAAM;oBACN,IAAI;oBACJ,MAAM;oBACN,IAAI,EAAE,gBAAgB,CACpB,IAAI,EACJ,MAAM,EACN,eAAe,CAAC,WAAW,EAC3B,eAAe,CAChB;oBACD,WAAW,EAAE,eAAe,CAAC,WAAW;oBACxC,OAAO,EAAE,eAAe,CAAC,OAAO;oBAChC,UAAU,EAAE,eAAe,CAAC,UAAU;oBACtC,UAAU,EAAE,iCAAiC;oBAC3C,2DAA2D;oBAC3D,eAAe,CAAC,UAAU,EAC1B,WAAW,CACZ;oBACD,WAAW,EACT,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI;wBAChC,CAAC,CAAC,uBAAuB,CACrB,eAAe,CAAC,WAAW,CAAC,IAAI,EAChC,WAAW,CACZ;wBACH,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,SAAS;oBAC/C,OAAO,EAAE,OAAO;oBAChB,QAAQ,EAAE,eAAe,CAAC,QAAQ;iBACnC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,MAAe,EACkC,EAAE,CACnD,oBAAoB,CAAC,QAAQ,CAC3B,MAA+C,CAChD,CAAC;AAEJ,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CAC8C,CAAC,CAAC"}
|
package/dist/packageVersion.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const packageVersion = "2.5.0-beta.
|
|
1
|
+
export declare const packageVersion = "2.5.0-beta.2";
|
|
2
2
|
//# sourceMappingURL=packageVersion.d.ts.map
|
package/dist/packageVersion.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openapi-qraft/plugin",
|
|
3
|
-
"version": "2.5.0-beta.
|
|
3
|
+
"version": "2.5.0-beta.2",
|
|
4
4
|
"packageManager": "yarn@4.0.2",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@openapi-qraft/eslint-config": "1.0.1",
|
|
46
|
-
"@openapi-qraft/test-fixtures": "1.0.
|
|
46
|
+
"@openapi-qraft/test-fixtures": "1.0.2-beta.0",
|
|
47
47
|
"@types/micromatch": "^4.0.9",
|
|
48
48
|
"@types/node": "^20.16.5",
|
|
49
49
|
"@vitest/coverage-v8": "^3.0.5",
|
|
@@ -25,10 +25,12 @@ export type OpenAPISchemaType = {
|
|
|
25
25
|
responses: {
|
|
26
26
|
[statusCode in number | 'default']: {
|
|
27
27
|
description: string;
|
|
28
|
-
content
|
|
29
|
-
[contentType: string]:
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
content?: {
|
|
29
|
+
[contentType: string]:
|
|
30
|
+
| {
|
|
31
|
+
schema: any;
|
|
32
|
+
}
|
|
33
|
+
| { type: string };
|
|
32
34
|
};
|
|
33
35
|
};
|
|
34
36
|
};
|
|
@@ -23,9 +23,19 @@ export type ServiceOperation = {
|
|
|
23
23
|
description: string | undefined;
|
|
24
24
|
summary: string | undefined;
|
|
25
25
|
deprecated: boolean | undefined;
|
|
26
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Contains error response types like 400, 401, 404, 500, etc.
|
|
28
|
+
* The mapping contains status codes as keys and response types as values.
|
|
29
|
+
* If the response type is `null`, it typically indicates an error response with no content.
|
|
30
|
+
*/
|
|
31
|
+
errors: Record<string, string[] | null | undefined>;
|
|
27
32
|
requestBody: OpenAPISchemaType['paths'][string]['post']['requestBody'];
|
|
28
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Contains successful response types like 200, 201, 204, etc.
|
|
35
|
+
* The mapping contains status codes as keys and response types as values.
|
|
36
|
+
* If the response type is `null`, it typically indicates a 204-like response with no content.
|
|
37
|
+
*/
|
|
38
|
+
success: Record<string, string[] | null | undefined>;
|
|
29
39
|
parameters:
|
|
30
40
|
| {
|
|
31
41
|
name: string;
|
|
@@ -1,26 +1,13 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
'multipart/related',
|
|
10
|
-
'multipart/batch',
|
|
11
|
-
];
|
|
1
|
+
export const getContentMediaType = (
|
|
2
|
+
content:
|
|
3
|
+
| {
|
|
4
|
+
[contentType: string]: { schema: unknown } | { type: unknown };
|
|
5
|
+
}
|
|
6
|
+
| undefined
|
|
7
|
+
) => {
|
|
8
|
+
const mediaTypes = Object.keys(content || {});
|
|
12
9
|
|
|
13
|
-
|
|
14
|
-
[contentType: string]: { schema: unknown };
|
|
15
|
-
}) => {
|
|
16
|
-
const basicMediaTypeWithSchema = Object.keys(content)
|
|
17
|
-
.filter((mediaType) => {
|
|
18
|
-
const cleanMediaType = mediaType.split(';')[0].trim();
|
|
19
|
-
return BASIC_MEDIA_TYPES.includes(cleanMediaType);
|
|
20
|
-
})
|
|
21
|
-
.find((mediaType) => content[mediaType]?.schema);
|
|
10
|
+
if (!mediaTypes.length) return null;
|
|
22
11
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return Object.keys(content).find((mediaType) => content[mediaType]?.schema);
|
|
12
|
+
return mediaTypes;
|
|
26
13
|
};
|
|
@@ -59,12 +59,13 @@ export const getServices = (
|
|
|
59
59
|
|
|
60
60
|
const { success, errors } = Object.entries(
|
|
61
61
|
methodOperation.responses
|
|
62
|
-
).reduce
|
|
62
|
+
).reduce<
|
|
63
|
+
Record<
|
|
64
|
+
'errors' | 'success',
|
|
65
|
+
Record<string, string[] | null | undefined>
|
|
66
|
+
>
|
|
67
|
+
>(
|
|
63
68
|
(acc, [statusCode, response]) => {
|
|
64
|
-
if (!response.content || typeof response.content !== 'object') {
|
|
65
|
-
return acc;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
69
|
const statusType =
|
|
69
70
|
statusCode !== 'default' && // See "default" response https://swagger.io/docs/specification/describing-responses/#default
|
|
70
71
|
Number(statusCode) < 400
|
|
@@ -79,7 +80,7 @@ export const getServices = (
|
|
|
79
80
|
},
|
|
80
81
|
};
|
|
81
82
|
},
|
|
82
|
-
{
|
|
83
|
+
{ errors: {}, success: {} }
|
|
83
84
|
);
|
|
84
85
|
|
|
85
86
|
const serviceFallbackBaseName = 'Default';
|
package/src/packageVersion.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// This file was generated automatically
|
|
2
|
-
export const packageVersion = '2.5.0-beta.
|
|
2
|
+
export const packageVersion = '2.5.0-beta.2';
|