@kollors/react-codegen 2.0.0-alpha.3 → 2.0.0-alpha.5
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/README.md +9 -4
- package/README.ru.md +9 -4
- package/dist/openapi/generate.js +6 -2
- package/dist/openapi/generate.js.map +1 -1
- package/dist/openapi/operations.d.ts +2 -2
- package/dist/openapi/operations.js +47 -48
- package/dist/openapi/operations.js.map +1 -1
- package/dist/openapi/schema.d.ts +8 -1
- package/dist/openapi/schema.js +148 -72
- package/dist/openapi/schema.js.map +1 -1
- package/dist/openapi/type-expression.d.ts +38 -0
- package/dist/openapi/type-expression.js +166 -0
- package/dist/openapi/type-expression.js.map +1 -0
- package/dist/openapi-runtime.d.ts +4 -0
- package/dist/openapi-runtime.js +50 -26
- package/dist/openapi-runtime.js.map +1 -1
- package/dist/openapi-runtime.source +55 -22
- package/package.json +2 -1
|
@@ -16,6 +16,8 @@ export interface OpenapiFetcherOptions<TBody, THeaders, TQueryParams, TPathParam
|
|
|
16
16
|
contentType?: string;
|
|
17
17
|
accept?: string;
|
|
18
18
|
responseType?: 'blob';
|
|
19
|
+
/** Reject empty successful responses when the operation declares a response body. */
|
|
20
|
+
requireResponseBody?: boolean;
|
|
19
21
|
/** Response status -> media type -> decoder. Exact statuses/media types take precedence over ranges and wildcards. */
|
|
20
22
|
responseTypes?: Record<string, Record<string, 'blob' | 'auto'>>;
|
|
21
23
|
parameters?: OpenapiParameter[];
|
|
@@ -42,4 +44,6 @@ export declare class OpenapiHttpError<TError = unknown> extends Error {
|
|
|
42
44
|
readonly data: TError;
|
|
43
45
|
constructor(status: number, statusText: string, url: string, data: TError);
|
|
44
46
|
}
|
|
47
|
+
export declare function normalizeContentType(contentType: string): string;
|
|
48
|
+
export declare function isJsonContentType(contentType: string): boolean;
|
|
45
49
|
export declare function createOpenapiFetcher(configuration?: OpenapiFetcherConfiguration): <TData, TError = unknown, TBody = unknown, THeaders = unknown, TQueryParams = unknown, TPathParams = unknown>(options: OpenapiFetcherOptions<TBody, THeaders, TQueryParams, TPathParams>) => Promise<TData>;
|
package/dist/openapi-runtime.js
CHANGED
|
@@ -55,23 +55,25 @@ export class OpenapiHttpError extends Error {
|
|
|
55
55
|
this.name = 'OpenapiHttpError';
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
function parameterScalar(value) {
|
|
58
|
+
function parameterScalar(value, location = 'parameter') {
|
|
59
59
|
if (value === null)
|
|
60
60
|
return '';
|
|
61
61
|
if (typeof value === 'object' || value === undefined)
|
|
62
|
-
throw new TypeError(
|
|
62
|
+
throw new TypeError(`OpenAPI ${location} must contain scalar values; received ${value === undefined ? 'undefined' : Array.isArray(value) ? 'an array' : 'an object'}.`);
|
|
63
63
|
return String(value);
|
|
64
64
|
}
|
|
65
|
-
function parameterParts(value, explode, encode) {
|
|
65
|
+
function parameterParts(value, explode, encode, location) {
|
|
66
66
|
if (Array.isArray(value))
|
|
67
|
-
return value.map((item) => encode(parameterScalar(item)));
|
|
67
|
+
return value.map((item, index) => encode(parameterScalar(item, `${location}[${index}]`)));
|
|
68
68
|
if (value !== null && typeof value === 'object') {
|
|
69
69
|
return Object.entries(value).flatMap(([key, item]) => {
|
|
70
|
-
|
|
70
|
+
if (item === undefined)
|
|
71
|
+
return [];
|
|
72
|
+
const pair = [encode(key), encode(parameterScalar(item, `${location}.${key}`))];
|
|
71
73
|
return explode ? [pair.join('=')] : pair;
|
|
72
74
|
});
|
|
73
75
|
}
|
|
74
|
-
return [encode(parameterScalar(value))];
|
|
76
|
+
return [encode(parameterScalar(value, location))];
|
|
75
77
|
}
|
|
76
78
|
function serializeQueryParams(queryParams, parameters = []) {
|
|
77
79
|
const result = [];
|
|
@@ -94,32 +96,44 @@ function serializeQueryParams(queryParams, parameters = []) {
|
|
|
94
96
|
if (style === 'deepObject') {
|
|
95
97
|
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
96
98
|
throw new TypeError(`deepObject requires an object: ${key}`);
|
|
97
|
-
for (const [name, item] of Object.entries(value))
|
|
98
|
-
|
|
99
|
+
for (const [name, item] of Object.entries(value)) {
|
|
100
|
+
if (item !== undefined)
|
|
101
|
+
append(`${key}[${name}]`, encodeURIComponent(parameterScalar(item, `query parameter "${key}.${name}"`)));
|
|
102
|
+
}
|
|
99
103
|
}
|
|
100
104
|
else if (style === 'form' && explode && value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
101
|
-
for (const [name, item] of Object.entries(value))
|
|
102
|
-
|
|
105
|
+
for (const [name, item] of Object.entries(value)) {
|
|
106
|
+
if (item !== undefined)
|
|
107
|
+
append(name, encodeURIComponent(parameterScalar(item, `query parameter "${key}.${name}"`)));
|
|
108
|
+
}
|
|
103
109
|
}
|
|
104
110
|
else if (explode && Array.isArray(value)) {
|
|
105
|
-
for (const item of value)
|
|
106
|
-
append(key, encodeURIComponent(parameterScalar(item)));
|
|
111
|
+
for (const [index, item] of value.entries())
|
|
112
|
+
append(key, encodeURIComponent(parameterScalar(item, `query parameter "${key}[${index}]"`)));
|
|
107
113
|
}
|
|
108
114
|
else {
|
|
109
115
|
const separator = style === 'spaceDelimited' ? '%20' : style === 'pipeDelimited' ? '|' : ',';
|
|
110
|
-
append(key, parameterParts(value, false, encodeURIComponent).join(separator));
|
|
116
|
+
append(key, parameterParts(value, false, encodeURIComponent, `query parameter "${key}"`).join(separator));
|
|
111
117
|
}
|
|
112
118
|
}
|
|
113
119
|
return result.join('&');
|
|
114
120
|
}
|
|
121
|
+
export function normalizeContentType(contentType) {
|
|
122
|
+
return contentType.split(';')[0]?.trim().toLowerCase() ?? '';
|
|
123
|
+
}
|
|
124
|
+
export function isJsonContentType(contentType) {
|
|
125
|
+
const mime = normalizeContentType(contentType);
|
|
126
|
+
return mime === 'application/json' || /^application\/[^/;\s]+\+json$/.test(mime);
|
|
127
|
+
}
|
|
115
128
|
function requestBody(body, contentType) {
|
|
116
129
|
if (body === undefined)
|
|
117
130
|
return undefined;
|
|
118
131
|
if (body instanceof FormData || body instanceof Blob || body instanceof URLSearchParams)
|
|
119
132
|
return body;
|
|
120
|
-
if (contentType
|
|
133
|
+
if (isJsonContentType(contentType))
|
|
121
134
|
return JSON.stringify(body);
|
|
122
|
-
|
|
135
|
+
const mime = normalizeContentType(contentType);
|
|
136
|
+
if (mime === 'multipart/form-data' || mime === 'application/x-www-form-urlencoded') {
|
|
123
137
|
if (body === null || typeof body !== 'object' || Array.isArray(body))
|
|
124
138
|
throw new TypeError(`${contentType} requires an object body.`);
|
|
125
139
|
const form = new FormData();
|
|
@@ -131,13 +145,13 @@ function requestBody(body, contentType) {
|
|
|
131
145
|
form.append(key, item);
|
|
132
146
|
else if (item !== null && typeof item === 'object') {
|
|
133
147
|
const json = JSON.stringify(item);
|
|
134
|
-
form.append(key,
|
|
148
|
+
form.append(key, mime === 'multipart/form-data' ? new Blob([json], { type: 'application/json' }) : json);
|
|
135
149
|
}
|
|
136
150
|
else
|
|
137
|
-
form.append(key, parameterScalar(item));
|
|
151
|
+
form.append(key, parameterScalar(item, `form field "${key}"`));
|
|
138
152
|
}
|
|
139
153
|
}
|
|
140
|
-
if (
|
|
154
|
+
if (mime === 'multipart/form-data')
|
|
141
155
|
return form;
|
|
142
156
|
const params = new URLSearchParams();
|
|
143
157
|
form.forEach((value, key) => {
|
|
@@ -160,7 +174,7 @@ function requestHeaders(value, parameters) {
|
|
|
160
174
|
if (item === undefined)
|
|
161
175
|
continue;
|
|
162
176
|
const parameter = parameters.find((entry) => entry.in === 'header' && entry.name.toLowerCase() === key.toLowerCase());
|
|
163
|
-
headers.set(key, parameterParts(item, parameter?.explode ?? false, (part) => part).join(','));
|
|
177
|
+
headers.set(key, parameterParts(item, parameter?.explode ?? false, (part) => part, `header parameter "${key}"`).join(','));
|
|
164
178
|
}
|
|
165
179
|
}
|
|
166
180
|
return headers;
|
|
@@ -179,13 +193,14 @@ async function readResponse(response, responseType) {
|
|
|
179
193
|
return undefined;
|
|
180
194
|
if (responseType === 'blob')
|
|
181
195
|
return await response.blob();
|
|
196
|
+
const contentType = normalizeContentType(response.headers.get('content-type') ?? '');
|
|
197
|
+
const json = isJsonContentType(contentType);
|
|
198
|
+
if (contentType.startsWith('text/') || (!json && contentType.includes('xml')))
|
|
199
|
+
return await response.text();
|
|
182
200
|
if (response.body === null || response.headers.get('content-length') === '0')
|
|
183
201
|
return undefined;
|
|
184
|
-
|
|
185
|
-
if (contentType.includes('json'))
|
|
202
|
+
if (json)
|
|
186
203
|
return await response.json();
|
|
187
|
-
if (contentType.startsWith('text/') || contentType.includes('xml'))
|
|
188
|
-
return await response.text();
|
|
189
204
|
return await response.blob();
|
|
190
205
|
}
|
|
191
206
|
export function createOpenapiFetcher(configuration = {}) {
|
|
@@ -195,7 +210,7 @@ export function createOpenapiFetcher(configuration = {}) {
|
|
|
195
210
|
const headers = new Headers();
|
|
196
211
|
const contentType = options.contentType ?? 'application/json';
|
|
197
212
|
if (options.body !== undefined) {
|
|
198
|
-
if (contentType === '*/*') {
|
|
213
|
+
if (normalizeContentType(contentType) === '*/*') {
|
|
199
214
|
if (!(options.body instanceof Blob))
|
|
200
215
|
throw new TypeError('Wildcard request content requires a Blob body.');
|
|
201
216
|
headers.set('content-type', options.body.type || 'application/octet-stream');
|
|
@@ -230,8 +245,12 @@ export function createOpenapiFetcher(configuration = {}) {
|
|
|
230
245
|
if (value === undefined || value === null)
|
|
231
246
|
throw new Error(`Missing required OpenAPI path parameter "${key}" for ${options.url}.`);
|
|
232
247
|
const parameter = parameters.find((item) => item.in === 'path' && item.name === key);
|
|
233
|
-
return parameterParts(value, parameter?.explode ?? false, encodeURIComponent).join(',');
|
|
248
|
+
return parameterParts(value, parameter?.explode ?? false, encodeURIComponent, `path parameter "${key}"`).join(',');
|
|
234
249
|
});
|
|
250
|
+
const pathSegments = path.split(/[?#]/, 1)[0]?.split('/') ?? [];
|
|
251
|
+
if (pathSegments.some((segment) => /^(?:\.|%2e){1,2}$/i.test(segment))) {
|
|
252
|
+
throw new Error(`OpenAPI path contains a dot segment that Fetch would normalize: ${options.url}.`);
|
|
253
|
+
}
|
|
235
254
|
const url = withBaseUrl(configuration.baseUrl, path);
|
|
236
255
|
const queryParams = serializeQueryParams(options.queryParams, parameters);
|
|
237
256
|
const requestUrl = withQueryParams(url, queryParams);
|
|
@@ -257,7 +276,7 @@ export function createOpenapiFetcher(configuration = {}) {
|
|
|
257
276
|
const declaredContent = options.responseTypes?.[response.status] ??
|
|
258
277
|
options.responseTypes?.[`${Math.floor(response.status / 100)}XX`] ??
|
|
259
278
|
options.responseTypes?.default;
|
|
260
|
-
const mime = response.headers.get('content-type')
|
|
279
|
+
const mime = normalizeContentType(response.headers.get('content-type') ?? '');
|
|
261
280
|
const declaredType = declaredContent?.[mime] ?? declaredContent?.[`${mime.split('/')[0]}/*`] ?? declaredContent?.['*/*'];
|
|
262
281
|
const responseType = options.responseTypes
|
|
263
282
|
? declaredType === 'blob'
|
|
@@ -270,6 +289,8 @@ export function createOpenapiFetcher(configuration = {}) {
|
|
|
270
289
|
result = options.method.toUpperCase() === 'HEAD' ? undefined : await readResponse(response, responseType);
|
|
271
290
|
}
|
|
272
291
|
catch (error) {
|
|
292
|
+
if (error instanceof Error && error.name === 'AbortError')
|
|
293
|
+
throw error;
|
|
273
294
|
if (!response.ok) {
|
|
274
295
|
result = errorResponse ? await errorResponse.text().catch(() => undefined) : undefined;
|
|
275
296
|
throw new OpenapiHttpError(response.status, response.statusText, requestUrl, result);
|
|
@@ -281,6 +302,9 @@ export function createOpenapiFetcher(configuration = {}) {
|
|
|
281
302
|
if (!response.ok) {
|
|
282
303
|
throw new OpenapiHttpError(response.status, response.statusText, requestUrl, result);
|
|
283
304
|
}
|
|
305
|
+
if (result === undefined && options.requireResponseBody) {
|
|
306
|
+
throw new Error(`OpenAPI response contract violation: HTTP ${response.status} returned no body for ${options.method.toUpperCase()} ${requestUrl}; the operation expects a response body.`);
|
|
307
|
+
}
|
|
284
308
|
return result;
|
|
285
309
|
}
|
|
286
310
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi-runtime.js","sourceRoot":"","sources":["../src/openapi-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openapi-runtime.js","sourceRoot":"","sources":["../src/openapi-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,8 @@ export interface OpenapiFetcherOptions<TBody, THeaders, TQueryParams, TPathParam
|
|
|
18
18
|
contentType?: string;
|
|
19
19
|
accept?: string;
|
|
20
20
|
responseType?: 'blob';
|
|
21
|
+
/** Reject empty successful responses when the operation declares a response body. */
|
|
22
|
+
requireResponseBody?: boolean;
|
|
21
23
|
/** Response status -> media type -> decoder. Exact statuses/media types take precedence over ranges and wildcards. */
|
|
22
24
|
responseTypes?: Record<string, Record<string, 'blob' | 'auto'>>;
|
|
23
25
|
parameters?: OpenapiParameter[];
|
|
@@ -88,21 +90,25 @@ export class OpenapiHttpError<TError = unknown> extends Error {
|
|
|
88
90
|
}
|
|
89
91
|
}
|
|
90
92
|
|
|
91
|
-
function parameterScalar(value: unknown): string {
|
|
93
|
+
function parameterScalar(value: unknown, location = 'parameter'): string {
|
|
92
94
|
if (value === null) return '';
|
|
93
|
-
if (typeof value === 'object' || value === undefined)
|
|
95
|
+
if (typeof value === 'object' || value === undefined)
|
|
96
|
+
throw new TypeError(
|
|
97
|
+
`OpenAPI ${location} must contain scalar values; received ${value === undefined ? 'undefined' : Array.isArray(value) ? 'an array' : 'an object'}.`,
|
|
98
|
+
);
|
|
94
99
|
return String(value);
|
|
95
100
|
}
|
|
96
101
|
|
|
97
|
-
function parameterParts(value: unknown, explode: boolean, encode: (value: string) => string): string[] {
|
|
98
|
-
if (Array.isArray(value)) return value.map((item) => encode(parameterScalar(item)));
|
|
102
|
+
function parameterParts(value: unknown, explode: boolean, encode: (value: string) => string, location: string): string[] {
|
|
103
|
+
if (Array.isArray(value)) return value.map((item, index) => encode(parameterScalar(item, `${location}[${index}]`)));
|
|
99
104
|
if (value !== null && typeof value === 'object') {
|
|
100
105
|
return Object.entries(value).flatMap(([key, item]) => {
|
|
101
|
-
|
|
106
|
+
if (item === undefined) return [];
|
|
107
|
+
const pair = [encode(key), encode(parameterScalar(item, `${location}.${key}`))];
|
|
102
108
|
return explode ? [pair.join('=')] : pair;
|
|
103
109
|
});
|
|
104
110
|
}
|
|
105
|
-
return [encode(parameterScalar(value))];
|
|
111
|
+
return [encode(parameterScalar(value, location))];
|
|
106
112
|
}
|
|
107
113
|
|
|
108
114
|
function serializeQueryParams(queryParams: unknown, parameters: OpenapiParameter[] = []): string {
|
|
@@ -123,24 +129,39 @@ function serializeQueryParams(queryParams: unknown, parameters: OpenapiParameter
|
|
|
123
129
|
const explode = parameter?.explode ?? true;
|
|
124
130
|
if (style === 'deepObject') {
|
|
125
131
|
if (value === null || typeof value !== 'object' || Array.isArray(value)) throw new TypeError(`deepObject requires an object: ${key}`);
|
|
126
|
-
for (const [name, item] of Object.entries(value))
|
|
132
|
+
for (const [name, item] of Object.entries(value)) {
|
|
133
|
+
if (item !== undefined) append(`${key}[${name}]`, encodeURIComponent(parameterScalar(item, `query parameter "${key}.${name}"`)));
|
|
134
|
+
}
|
|
127
135
|
} else if (style === 'form' && explode && value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
128
|
-
for (const [name, item] of Object.entries(value))
|
|
136
|
+
for (const [name, item] of Object.entries(value)) {
|
|
137
|
+
if (item !== undefined) append(name, encodeURIComponent(parameterScalar(item, `query parameter "${key}.${name}"`)));
|
|
138
|
+
}
|
|
129
139
|
} else if (explode && Array.isArray(value)) {
|
|
130
|
-
for (const item of value
|
|
140
|
+
for (const [index, item] of value.entries())
|
|
141
|
+
append(key, encodeURIComponent(parameterScalar(item, `query parameter "${key}[${index}]"`)));
|
|
131
142
|
} else {
|
|
132
143
|
const separator = style === 'spaceDelimited' ? '%20' : style === 'pipeDelimited' ? '|' : ',';
|
|
133
|
-
append(key, parameterParts(value, false, encodeURIComponent).join(separator));
|
|
144
|
+
append(key, parameterParts(value, false, encodeURIComponent, `query parameter "${key}"`).join(separator));
|
|
134
145
|
}
|
|
135
146
|
}
|
|
136
147
|
return result.join('&');
|
|
137
148
|
}
|
|
138
149
|
|
|
150
|
+
export function normalizeContentType(contentType: string): string {
|
|
151
|
+
return contentType.split(';')[0]?.trim().toLowerCase() ?? '';
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export function isJsonContentType(contentType: string): boolean {
|
|
155
|
+
const mime = normalizeContentType(contentType);
|
|
156
|
+
return mime === 'application/json' || /^application\/[^/;\s]+\+json$/.test(mime);
|
|
157
|
+
}
|
|
158
|
+
|
|
139
159
|
function requestBody(body: unknown, contentType: string): BodyInit | undefined {
|
|
140
160
|
if (body === undefined) return undefined;
|
|
141
161
|
if (body instanceof FormData || body instanceof Blob || body instanceof URLSearchParams) return body;
|
|
142
|
-
if (contentType
|
|
143
|
-
|
|
162
|
+
if (isJsonContentType(contentType)) return JSON.stringify(body);
|
|
163
|
+
const mime = normalizeContentType(contentType);
|
|
164
|
+
if (mime === 'multipart/form-data' || mime === 'application/x-www-form-urlencoded') {
|
|
144
165
|
if (body === null || typeof body !== 'object' || Array.isArray(body)) throw new TypeError(`${contentType} requires an object body.`);
|
|
145
166
|
const form = new FormData();
|
|
146
167
|
for (const [key, value] of Object.entries(body)) {
|
|
@@ -149,11 +170,11 @@ function requestBody(body: unknown, contentType: string): BodyInit | undefined {
|
|
|
149
170
|
if (item instanceof Blob) form.append(key, item);
|
|
150
171
|
else if (item !== null && typeof item === 'object') {
|
|
151
172
|
const json = JSON.stringify(item);
|
|
152
|
-
form.append(key,
|
|
153
|
-
} else form.append(key, parameterScalar(item));
|
|
173
|
+
form.append(key, mime === 'multipart/form-data' ? new Blob([json], { type: 'application/json' }) : json);
|
|
174
|
+
} else form.append(key, parameterScalar(item, `form field "${key}"`));
|
|
154
175
|
}
|
|
155
176
|
}
|
|
156
|
-
if (
|
|
177
|
+
if (mime === 'multipart/form-data') return form;
|
|
157
178
|
const params = new URLSearchParams();
|
|
158
179
|
form.forEach((value, key) => {
|
|
159
180
|
if (typeof value !== 'string') throw new TypeError('URL-encoded bodies cannot contain binary files.');
|
|
@@ -172,7 +193,7 @@ function requestHeaders(value: unknown, parameters: OpenapiParameter[]): Headers
|
|
|
172
193
|
for (const [key, item] of Object.entries(value)) {
|
|
173
194
|
if (item === undefined) continue;
|
|
174
195
|
const parameter = parameters.find((entry) => entry.in === 'header' && entry.name.toLowerCase() === key.toLowerCase());
|
|
175
|
-
headers.set(key, parameterParts(item, parameter?.explode ?? false, (part) => part).join(','));
|
|
196
|
+
headers.set(key, parameterParts(item, parameter?.explode ?? false, (part) => part, `header parameter "${key}"`).join(','));
|
|
176
197
|
}
|
|
177
198
|
}
|
|
178
199
|
return headers;
|
|
@@ -190,10 +211,11 @@ function withQueryParams(url: string, serialized: string): string {
|
|
|
190
211
|
async function readResponse(response: Response, responseType?: 'blob'): Promise<unknown> {
|
|
191
212
|
if (response.status === 204 || response.status === 205) return undefined;
|
|
192
213
|
if (responseType === 'blob') return await response.blob();
|
|
214
|
+
const contentType = normalizeContentType(response.headers.get('content-type') ?? '');
|
|
215
|
+
const json = isJsonContentType(contentType);
|
|
216
|
+
if (contentType.startsWith('text/') || (!json && contentType.includes('xml'))) return await response.text();
|
|
193
217
|
if (response.body === null || response.headers.get('content-length') === '0') return undefined;
|
|
194
|
-
|
|
195
|
-
if (contentType.includes('json')) return await response.json();
|
|
196
|
-
if (contentType.startsWith('text/') || contentType.includes('xml')) return await response.text();
|
|
218
|
+
if (json) return await response.json();
|
|
197
219
|
return await response.blob();
|
|
198
220
|
}
|
|
199
221
|
|
|
@@ -211,7 +233,7 @@ export function createOpenapiFetcher(configuration: OpenapiFetcherConfiguration
|
|
|
211
233
|
const headers = new Headers();
|
|
212
234
|
const contentType = options.contentType ?? 'application/json';
|
|
213
235
|
if (options.body !== undefined) {
|
|
214
|
-
if (contentType === '*/*') {
|
|
236
|
+
if (normalizeContentType(contentType) === '*/*') {
|
|
215
237
|
if (!(options.body instanceof Blob)) throw new TypeError('Wildcard request content requires a Blob body.');
|
|
216
238
|
headers.set('content-type', options.body.type || 'application/octet-stream');
|
|
217
239
|
} else {
|
|
@@ -243,8 +265,12 @@ export function createOpenapiFetcher(configuration: OpenapiFetcherConfiguration
|
|
|
243
265
|
const value = pathParams?.[key];
|
|
244
266
|
if (value === undefined || value === null) throw new Error(`Missing required OpenAPI path parameter "${key}" for ${options.url}.`);
|
|
245
267
|
const parameter = parameters.find((item) => item.in === 'path' && item.name === key);
|
|
246
|
-
return parameterParts(value, parameter?.explode ?? false, encodeURIComponent).join(',');
|
|
268
|
+
return parameterParts(value, parameter?.explode ?? false, encodeURIComponent, `path parameter "${key}"`).join(',');
|
|
247
269
|
});
|
|
270
|
+
const pathSegments = path.split(/[?#]/, 1)[0]?.split('/') ?? [];
|
|
271
|
+
if (pathSegments.some((segment) => /^(?:\.|%2e){1,2}$/i.test(segment))) {
|
|
272
|
+
throw new Error(`OpenAPI path contains a dot segment that Fetch would normalize: ${options.url}.`);
|
|
273
|
+
}
|
|
248
274
|
const url = withBaseUrl(configuration.baseUrl, path);
|
|
249
275
|
const queryParams = serializeQueryParams(options.queryParams, parameters);
|
|
250
276
|
const requestUrl = withQueryParams(url, queryParams);
|
|
@@ -270,7 +296,7 @@ export function createOpenapiFetcher(configuration: OpenapiFetcherConfiguration
|
|
|
270
296
|
options.responseTypes?.[response.status] ??
|
|
271
297
|
options.responseTypes?.[`${Math.floor(response.status / 100)}XX`] ??
|
|
272
298
|
options.responseTypes?.default;
|
|
273
|
-
const mime = response.headers.get('content-type')
|
|
299
|
+
const mime = normalizeContentType(response.headers.get('content-type') ?? '');
|
|
274
300
|
const declaredType = declaredContent?.[mime] ?? declaredContent?.[`${mime.split('/')[0]}/*`] ?? declaredContent?.['*/*'];
|
|
275
301
|
const responseType = options.responseTypes
|
|
276
302
|
? declaredType === 'blob'
|
|
@@ -282,6 +308,7 @@ export function createOpenapiFetcher(configuration: OpenapiFetcherConfiguration
|
|
|
282
308
|
try {
|
|
283
309
|
result = options.method.toUpperCase() === 'HEAD' ? undefined : await readResponse(response, responseType);
|
|
284
310
|
} catch (error) {
|
|
311
|
+
if (error instanceof Error && error.name === 'AbortError') throw error;
|
|
285
312
|
if (!response.ok) {
|
|
286
313
|
result = errorResponse ? await errorResponse.text().catch(() => undefined) : undefined;
|
|
287
314
|
throw new OpenapiHttpError(response.status, response.statusText, requestUrl, result);
|
|
@@ -294,6 +321,12 @@ export function createOpenapiFetcher(configuration: OpenapiFetcherConfiguration
|
|
|
294
321
|
throw new OpenapiHttpError<TError>(response.status, response.statusText, requestUrl, result as TError);
|
|
295
322
|
}
|
|
296
323
|
|
|
324
|
+
if (result === undefined && options.requireResponseBody) {
|
|
325
|
+
throw new Error(
|
|
326
|
+
`OpenAPI response contract violation: HTTP ${response.status} returned no body for ${options.method.toUpperCase()} ${requestUrl}; the operation expects a response body.`,
|
|
327
|
+
);
|
|
328
|
+
}
|
|
329
|
+
|
|
297
330
|
return result as TData;
|
|
298
331
|
} catch (error) {
|
|
299
332
|
throw error instanceof Error ? error : new Error(String(error));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kollors/react-codegen",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.5",
|
|
4
4
|
"description": "Generate TanStack Query clients from OpenAPI and GraphQL schemas",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
"@graphql-codegen/typescript": "^6.1.0",
|
|
47
47
|
"@graphql-codegen/typescript-operations": "^6.1.7",
|
|
48
48
|
"@graphql-codegen/typescript-react-query": "^7.0.5",
|
|
49
|
+
"prettier": "3.9.9",
|
|
49
50
|
"yaml": "^2.9.1"
|
|
50
51
|
},
|
|
51
52
|
"peerDependencies": {
|