@kubb/adapter-oas 5.0.0-alpha.11 → 5.0.0-alpha.12

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/adapter-oas",
3
- "version": "5.0.0-alpha.11",
3
+ "version": "5.0.0-alpha.12",
4
4
  "description": "OpenAPI / Swagger adapter for Kubb — converts OAS input into a @kubb/ast RootNode.",
5
5
  "keywords": [
6
6
  "openapi",
@@ -46,8 +46,8 @@
46
46
  "openapi-types": "^12.1.3",
47
47
  "remeda": "^2.33.6",
48
48
  "swagger2openapi": "^7.0.8",
49
- "@kubb/ast": "5.0.0-alpha.11",
50
- "@kubb/core": "5.0.0-alpha.11"
49
+ "@kubb/ast": "5.0.0-alpha.12",
50
+ "@kubb/core": "5.0.0-alpha.12"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/swagger2openapi": "^7.0.4",
package/src/parser.ts CHANGED
@@ -1013,7 +1013,20 @@ export function createOasParser(oas: Oas, { contentType, collisionDetection }: O
1013
1013
  const parameters: Array<ParameterNode> = oas.getParameters(operation).map((param) => parseParameter(options, param as unknown as Record<string, unknown>))
1014
1014
 
1015
1015
  const requestBodySchema = oas.getRequestSchema(operation)
1016
- const requestBody = requestBodySchema ? convertSchema({ schema: requestBodySchema }, options) : undefined
1016
+ const requestBodySchemaNode = requestBodySchema ? convertSchema({ schema: requestBodySchema }, options) : undefined
1017
+
1018
+ const requestBodyKeysToOmit = requestBodySchema?.properties
1019
+ ? Object.entries(requestBodySchema.properties)
1020
+ .filter(([, prop]) => !isReference(prop) && (prop as { readOnly?: boolean }).readOnly)
1021
+ .map(([key]) => key)
1022
+ : undefined
1023
+
1024
+ const requestBody = requestBodySchemaNode
1025
+ ? {
1026
+ schema: requestBodySchemaNode,
1027
+ keysToOmit: requestBodyKeysToOmit?.length ? requestBodyKeysToOmit : undefined,
1028
+ }
1029
+ : undefined
1017
1030
 
1018
1031
  const responses: Array<ResponseNode> = operation.getResponseStatusCodes().map((statusCode) => {
1019
1032
  const responseObj = operation.getResponseByStatusCode(statusCode)
@@ -1033,11 +1046,18 @@ export function createOasParser(oas: Oas, { contentType, collisionDetection }: O
1033
1046
 
1034
1047
  const mediaType = rawContent ? toMediaType(Object.keys(rawContent)[0] ?? '') : toMediaType(operation.contentType ?? '')
1035
1048
 
1049
+ const keysToOmit = responseSchema?.properties
1050
+ ? Object.entries(responseSchema.properties)
1051
+ .filter(([, prop]) => !isReference(prop) && (prop as { writeOnly?: boolean }).writeOnly)
1052
+ .map(([key]) => key)
1053
+ : undefined
1054
+
1036
1055
  return createResponse({
1037
1056
  statusCode: statusCode as StatusCode,
1038
1057
  description,
1039
1058
  schema,
1040
1059
  mediaType,
1060
+ keysToOmit: keysToOmit?.length ? keysToOmit : undefined,
1041
1061
  })
1042
1062
  })
1043
1063