react-query-lightbase-codegen 2.1.4 → 2.2.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.
@@ -33,7 +33,9 @@ function generateAxiosMethod(operation, spec) {
33
33
  const [code, response] = responseDetails;
34
34
  const responseObj = response;
35
35
  const desc = "description" in responseObj ? responseObj.description : "";
36
- const contentType = responseObj.content?.["application/json"]?.schema;
36
+ const contentType = responseObj.content?.["application/json"]?.schema ??
37
+ responseObj.content?.["application/ld+json"]?.schema ??
38
+ responseObj.content?.["application/octet-stream"]?.schema;
37
39
  const typeName = (0, utils_1.pascalCase)(`${operationId}Response${code}`);
38
40
  if (contentType) {
39
41
  if (desc) {
@@ -52,9 +54,12 @@ function generateAxiosMethod(operation, spec) {
52
54
  const formDataSchema = isFormData
53
55
  ? resolveSchema(requestBody.content["multipart/form-data"].schema, spec)
54
56
  : undefined;
55
- const requestBodySchema = requestBody?.content?.["application/json"]?.schema
56
- ? resolveSchema(requestBody.content["application/json"].schema, spec)
57
+ const content = requestBody && "content" in requestBody
58
+ ? (requestBody.content?.["application/json"]?.schema ??
59
+ requestBody.content?.["application/ld+json"]?.schema ??
60
+ requestBody.content?.["application/octet-stream"]?.schema)
57
61
  : undefined;
62
+ const requestBodySchema = content ? resolveSchema(content, spec) : undefined;
58
63
  // Build data type parts
59
64
  const dataProps = [];
60
65
  // Add path and query parameters
@@ -14,11 +14,16 @@ function generateQueryOptions(operation, spec) {
14
14
  }
15
15
  return schema.required?.map((p) => `'${p}'`) || [];
16
16
  };
17
+ const content = requestBody && "content" in requestBody
18
+ ? (requestBody.content?.["application/json"]?.schema ??
19
+ requestBody.content?.["application/ld+json"]?.schema ??
20
+ requestBody.content?.["application/octet-stream"]?.schema)
21
+ : undefined;
17
22
  // Get required parameter names from both parameters and request body
18
23
  const requiredParams = [
19
24
  ...(parameters?.filter((p) => p.required).map((p) => `'${p.name}'`) || []),
20
- ...(requestBody && "content" in requestBody && requestBody.content?.["application/json"]?.schema
21
- ? getRequiredFields(requestBody.content["application/json"].schema, {
25
+ ...(content
26
+ ? getRequiredFields(content, {
22
27
  schemas: spec.components?.schemas || {},
23
28
  })
24
29
  : []),
@@ -93,7 +93,10 @@ function generateTypeDefinitions(spec) {
93
93
  // Generate request body type
94
94
  if (operationObject.requestBody) {
95
95
  const content = operationObject.requestBody.content;
96
- const jsonContent = content["application/json"] || content["multipart/form-data"];
96
+ const jsonContent = content["application/json"] ??
97
+ content["multipart/form-data"] ??
98
+ content["application/ld+json"] ??
99
+ content["application/octet-stream"];
97
100
  if (jsonContent?.schema) {
98
101
  const typeName = `${operationId}Request`;
99
102
  output += generateTypeDefinition(typeName, jsonContent.schema, context);
@@ -103,7 +106,9 @@ function generateTypeDefinitions(spec) {
103
106
  if (operationObject.responses) {
104
107
  for (const [code, response] of Object.entries(operationObject.responses)) {
105
108
  const responseObj = response;
106
- const content = responseObj.content?.["application/json"];
109
+ const content = responseObj.content?.["application/json"] ??
110
+ responseObj.content?.["application/ld+json"] ??
111
+ responseObj.content?.["application/octet-stream"];
107
112
  if (content?.schema) {
108
113
  const typeName = `${operationId}Response${code}`;
109
114
  output += generateTypeDefinition(typeName, content.schema, context);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-query-lightbase-codegen",
3
- "version": "2.1.4",
3
+ "version": "2.2.0",
4
4
  "license": "MIT",
5
5
  "description": "Generate Axios API clients and React Query options from OpenAPI specifications",
6
6
  "exports": "./dist/index.js",
@@ -50,7 +50,11 @@ function generateAxiosMethod(operation: OperationInfo, spec: OpenAPIV3.Document)
50
50
  const [code, response] = responseDetails;
51
51
  const responseObj = response as OpenAPIV3.ResponseObject;
52
52
  const desc = "description" in responseObj ? responseObj.description : "";
53
- const contentType = responseObj.content?.["application/json"]?.schema;
53
+ const contentType =
54
+ responseObj.content?.["application/json"]?.schema ??
55
+ responseObj.content?.["application/ld+json"]?.schema ??
56
+ responseObj.content?.["application/octet-stream"]?.schema;
57
+
54
58
  const typeName = pascalCase(`${operationId}Response${code}`);
55
59
 
56
60
  if (contentType) {
@@ -74,9 +78,14 @@ function generateAxiosMethod(operation: OperationInfo, spec: OpenAPIV3.Document)
74
78
  ? resolveSchema(requestBody.content["multipart/form-data"].schema, spec)
75
79
  : undefined;
76
80
 
77
- const requestBodySchema = requestBody?.content?.["application/json"]?.schema
78
- ? resolveSchema(requestBody.content["application/json"].schema, spec)
79
- : undefined;
81
+ const content =
82
+ requestBody && "content" in requestBody
83
+ ? (requestBody.content?.["application/json"]?.schema ??
84
+ requestBody.content?.["application/ld+json"]?.schema ??
85
+ requestBody.content?.["application/octet-stream"]?.schema)
86
+ : undefined;
87
+
88
+ const requestBodySchema = content ? resolveSchema(content, spec) : undefined;
80
89
 
81
90
  // Build data type parts
82
91
  const dataProps: string[] = [];
@@ -20,11 +20,17 @@ function generateQueryOptions(operation: OperationInfo, spec: OpenAPIV3.Document
20
20
  return schema.required?.map((p) => `'${p}'`) || [];
21
21
  };
22
22
 
23
+ const content =
24
+ requestBody && "content" in requestBody
25
+ ? (requestBody.content?.["application/json"]?.schema ??
26
+ requestBody.content?.["application/ld+json"]?.schema ??
27
+ requestBody.content?.["application/octet-stream"]?.schema)
28
+ : undefined;
23
29
  // Get required parameter names from both parameters and request body
24
30
  const requiredParams = [
25
31
  ...(parameters?.filter((p) => p.required).map((p) => `'${p.name}'`) || []),
26
- ...(requestBody && "content" in requestBody && requestBody.content?.["application/json"]?.schema
27
- ? getRequiredFields(requestBody.content["application/json"].schema, {
32
+ ...(content
33
+ ? getRequiredFields(content, {
28
34
  schemas: (spec.components?.schemas as { [key: string]: OpenAPIV3.SchemaObject }) || {},
29
35
  })
30
36
  : []),
@@ -1,5 +1,5 @@
1
1
  import type { OpenAPIV3 } from "openapi-types";
2
- import { pascalCase, sanitizePropertyName, sanitizeTypeName } from "../utils";
2
+ import { sanitizePropertyName, sanitizeTypeName } from "../utils";
3
3
 
4
4
  interface SchemaContext {
5
5
  schemas: { [key: string]: OpenAPIV3.SchemaObject };
@@ -113,7 +113,11 @@ export function generateTypeDefinitions(spec: OpenAPIV3.Document): string {
113
113
  // Generate request body type
114
114
  if (operationObject.requestBody) {
115
115
  const content = (operationObject.requestBody as OpenAPIV3.RequestBodyObject).content;
116
- const jsonContent = content["application/json"] || content["multipart/form-data"];
116
+ const jsonContent =
117
+ content["application/json"] ??
118
+ content["multipart/form-data"] ??
119
+ content["application/ld+json"] ??
120
+ content["application/octet-stream"];
117
121
  if (jsonContent?.schema) {
118
122
  const typeName = `${operationId}Request`;
119
123
  output += generateTypeDefinition(typeName, jsonContent.schema as OpenAPIV3.SchemaObject, context);
@@ -124,7 +128,10 @@ export function generateTypeDefinitions(spec: OpenAPIV3.Document): string {
124
128
  if (operationObject.responses) {
125
129
  for (const [code, response] of Object.entries(operationObject.responses)) {
126
130
  const responseObj = response as OpenAPIV3.ResponseObject;
127
- const content = responseObj.content?.["application/json"];
131
+ const content =
132
+ responseObj.content?.["application/json"] ??
133
+ responseObj.content?.["application/ld+json"] ??
134
+ responseObj.content?.["application/octet-stream"];
128
135
  if (content?.schema) {
129
136
  const typeName = `${operationId}Response${code}`;
130
137
  output += generateTypeDefinition(typeName, content.schema as OpenAPIV3.SchemaObject, context);