@kollors/react-codegen 2.0.0-alpha.4 → 2.0.0-alpha.6
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 +193 -49
- package/README.ru.md +193 -49
- package/dist/{cli.js → cli/index.js} +6 -11
- package/dist/cli/index.js.map +1 -0
- package/dist/core/auth.d.ts +7 -0
- package/dist/core/auth.js +2 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/config.d.ts +2 -0
- package/dist/core/config.js +67 -0
- package/dist/core/config.js.map +1 -0
- package/dist/{generate.d.ts → core/generate.d.ts} +0 -1
- package/dist/core/generate.js +47 -0
- package/dist/core/generate.js.map +1 -0
- package/dist/core/names.d.ts +5 -0
- package/dist/core/names.js +16 -0
- package/dist/core/names.js.map +1 -0
- package/dist/core/output.d.ts +5 -0
- package/dist/core/output.js +39 -0
- package/dist/core/output.js.map +1 -0
- package/dist/core/paths.d.ts +4 -0
- package/dist/core/paths.js +12 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/{types.d.ts → core/types.d.ts} +2 -2
- package/dist/core/types.js.map +1 -0
- package/dist/graphql/document.d.ts +8 -0
- package/dist/graphql/document.js +118 -0
- package/dist/graphql/document.js.map +1 -0
- package/dist/graphql/fetcher.d.ts +5 -0
- package/dist/graphql/fetcher.js +4 -0
- package/dist/graphql/fetcher.js.map +1 -0
- package/dist/graphql/generate.d.ts +3 -0
- package/dist/graphql/generate.js +59 -0
- package/dist/graphql/generate.js.map +1 -0
- package/dist/graphql/operations.d.ts +13 -0
- package/dist/graphql/operations.js +139 -0
- package/dist/graphql/operations.js.map +1 -0
- package/dist/{graphql-fetcher.d.ts → graphql/runtime.d.ts} +4 -3
- package/dist/{graphql-fetcher.js → graphql/runtime.js} +12 -6
- package/dist/graphql/runtime.js.map +1 -0
- package/dist/graphql/runtime.source +140 -0
- package/dist/graphql/selections.d.ts +12 -0
- package/dist/graphql/selections.js +120 -0
- package/dist/graphql/selections.js.map +1 -0
- package/dist/graphql/types.d.ts +15 -0
- package/dist/graphql/types.js +110 -0
- package/dist/graphql/types.js.map +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/openapi/fetcher.d.ts +3 -0
- package/dist/openapi/fetcher.js +4 -0
- package/dist/openapi/fetcher.js.map +1 -0
- package/dist/openapi/generate.d.ts +1 -1
- package/dist/openapi/generate.js +2 -1
- package/dist/openapi/generate.js.map +1 -1
- package/dist/openapi/names.d.ts +1 -5
- package/dist/openapi/names.js +1 -15
- package/dist/openapi/names.js.map +1 -1
- package/dist/openapi/operations.d.ts +0 -1
- package/dist/openapi/operations.js +35 -45
- package/dist/openapi/operations.js.map +1 -1
- package/dist/{openapi-runtime.d.ts → openapi/runtime.d.ts} +5 -7
- package/dist/{openapi-runtime.js → openapi/runtime.js} +38 -25
- package/dist/openapi/runtime.js.map +1 -0
- package/dist/{openapi-runtime.source → openapi/runtime.source} +43 -21
- package/dist/openapi/schema.d.ts +4 -0
- package/dist/openapi/schema.js +83 -77
- 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/docs/migration.md +21 -0
- package/docs/migration.ru.md +21 -0
- package/package.json +10 -15
- package/dist/cli.js.map +0 -1
- package/dist/generate.js +0 -197
- package/dist/generate.js.map +0 -1
- package/dist/graphql-fetcher.js.map +0 -1
- package/dist/openapi-fetcher.d.ts +0 -3
- package/dist/openapi-fetcher.js +0 -4
- package/dist/openapi-fetcher.js.map +0 -1
- package/dist/openapi-runtime.js.map +0 -1
- package/dist/path-utils.d.ts +0 -2
- package/dist/path-utils.js +0 -5
- package/dist/path-utils.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/templates/graphql.template +0 -23
- /package/dist/{cli.d.ts → cli/index.d.ts} +0 -0
- /package/dist/{types.js → core/types.js} +0 -0
|
@@ -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,21 +129,30 @@ 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
|
|
|
139
|
-
function
|
|
140
|
-
|
|
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);
|
|
141
156
|
return mime === 'application/json' || /^application\/[^/;\s]+\+json$/.test(mime);
|
|
142
157
|
}
|
|
143
158
|
|
|
@@ -145,7 +160,8 @@ function requestBody(body: unknown, contentType: string): BodyInit | undefined {
|
|
|
145
160
|
if (body === undefined) return undefined;
|
|
146
161
|
if (body instanceof FormData || body instanceof Blob || body instanceof URLSearchParams) return body;
|
|
147
162
|
if (isJsonContentType(contentType)) return JSON.stringify(body);
|
|
148
|
-
|
|
163
|
+
const mime = normalizeContentType(contentType);
|
|
164
|
+
if (mime === 'multipart/form-data' || mime === 'application/x-www-form-urlencoded') {
|
|
149
165
|
if (body === null || typeof body !== 'object' || Array.isArray(body)) throw new TypeError(`${contentType} requires an object body.`);
|
|
150
166
|
const form = new FormData();
|
|
151
167
|
for (const [key, value] of Object.entries(body)) {
|
|
@@ -154,11 +170,11 @@ function requestBody(body: unknown, contentType: string): BodyInit | undefined {
|
|
|
154
170
|
if (item instanceof Blob) form.append(key, item);
|
|
155
171
|
else if (item !== null && typeof item === 'object') {
|
|
156
172
|
const json = JSON.stringify(item);
|
|
157
|
-
form.append(key,
|
|
158
|
-
} 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}"`));
|
|
159
175
|
}
|
|
160
176
|
}
|
|
161
|
-
if (
|
|
177
|
+
if (mime === 'multipart/form-data') return form;
|
|
162
178
|
const params = new URLSearchParams();
|
|
163
179
|
form.forEach((value, key) => {
|
|
164
180
|
if (typeof value !== 'string') throw new TypeError('URL-encoded bodies cannot contain binary files.');
|
|
@@ -177,7 +193,7 @@ function requestHeaders(value: unknown, parameters: OpenapiParameter[]): Headers
|
|
|
177
193
|
for (const [key, item] of Object.entries(value)) {
|
|
178
194
|
if (item === undefined) continue;
|
|
179
195
|
const parameter = parameters.find((entry) => entry.in === 'header' && entry.name.toLowerCase() === key.toLowerCase());
|
|
180
|
-
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(','));
|
|
181
197
|
}
|
|
182
198
|
}
|
|
183
199
|
return headers;
|
|
@@ -195,7 +211,7 @@ function withQueryParams(url: string, serialized: string): string {
|
|
|
195
211
|
async function readResponse(response: Response, responseType?: 'blob'): Promise<unknown> {
|
|
196
212
|
if (response.status === 204 || response.status === 205) return undefined;
|
|
197
213
|
if (responseType === 'blob') return await response.blob();
|
|
198
|
-
const contentType = response.headers.get('content-type')
|
|
214
|
+
const contentType = normalizeContentType(response.headers.get('content-type') ?? '');
|
|
199
215
|
const json = isJsonContentType(contentType);
|
|
200
216
|
if (contentType.startsWith('text/') || (!json && contentType.includes('xml'))) return await response.text();
|
|
201
217
|
if (response.body === null || response.headers.get('content-length') === '0') return undefined;
|
|
@@ -217,7 +233,7 @@ export function createOpenapiFetcher(configuration: OpenapiFetcherConfiguration
|
|
|
217
233
|
const headers = new Headers();
|
|
218
234
|
const contentType = options.contentType ?? 'application/json';
|
|
219
235
|
if (options.body !== undefined) {
|
|
220
|
-
if (contentType === '*/*') {
|
|
236
|
+
if (normalizeContentType(contentType) === '*/*') {
|
|
221
237
|
if (!(options.body instanceof Blob)) throw new TypeError('Wildcard request content requires a Blob body.');
|
|
222
238
|
headers.set('content-type', options.body.type || 'application/octet-stream');
|
|
223
239
|
} else {
|
|
@@ -249,7 +265,7 @@ export function createOpenapiFetcher(configuration: OpenapiFetcherConfiguration
|
|
|
249
265
|
const value = pathParams?.[key];
|
|
250
266
|
if (value === undefined || value === null) throw new Error(`Missing required OpenAPI path parameter "${key}" for ${options.url}.`);
|
|
251
267
|
const parameter = parameters.find((item) => item.in === 'path' && item.name === key);
|
|
252
|
-
return parameterParts(value, parameter?.explode ?? false, encodeURIComponent).join(',');
|
|
268
|
+
return parameterParts(value, parameter?.explode ?? false, encodeURIComponent, `path parameter "${key}"`).join(',');
|
|
253
269
|
});
|
|
254
270
|
const pathSegments = path.split(/[?#]/, 1)[0]?.split('/') ?? [];
|
|
255
271
|
if (pathSegments.some((segment) => /^(?:\.|%2e){1,2}$/i.test(segment))) {
|
|
@@ -280,7 +296,7 @@ export function createOpenapiFetcher(configuration: OpenapiFetcherConfiguration
|
|
|
280
296
|
options.responseTypes?.[response.status] ??
|
|
281
297
|
options.responseTypes?.[`${Math.floor(response.status / 100)}XX`] ??
|
|
282
298
|
options.responseTypes?.default;
|
|
283
|
-
const mime = response.headers.get('content-type')
|
|
299
|
+
const mime = normalizeContentType(response.headers.get('content-type') ?? '');
|
|
284
300
|
const declaredType = declaredContent?.[mime] ?? declaredContent?.[`${mime.split('/')[0]}/*`] ?? declaredContent?.['*/*'];
|
|
285
301
|
const responseType = options.responseTypes
|
|
286
302
|
? declaredType === 'blob'
|
|
@@ -305,6 +321,12 @@ export function createOpenapiFetcher(configuration: OpenapiFetcherConfiguration
|
|
|
305
321
|
throw new OpenapiHttpError<TError>(response.status, response.statusText, requestUrl, result as TError);
|
|
306
322
|
}
|
|
307
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
|
+
|
|
308
330
|
return result as TData;
|
|
309
331
|
} catch (error) {
|
|
310
332
|
throw error instanceof Error ? error : new Error(String(error));
|
package/dist/openapi/schema.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare class Schemas {
|
|
|
7
7
|
private readonly models;
|
|
8
8
|
private readonly variants;
|
|
9
9
|
private readonly contexts;
|
|
10
|
+
private readonly resolvedTypes;
|
|
10
11
|
constructor(document: OpenapiDocument, names: Names);
|
|
11
12
|
private checkAliases;
|
|
12
13
|
private needsVariant;
|
|
@@ -15,5 +16,8 @@ export declare class Schemas {
|
|
|
15
16
|
declarations(): string;
|
|
16
17
|
private contextualType;
|
|
17
18
|
type(value: unknown, location: string, mode?: SchemaMode, trail?: string[], excluded?: Set<string>): string;
|
|
19
|
+
parameterKind(value: unknown, location: string): 'scalar' | 'array' | 'object';
|
|
20
|
+
private referenceType;
|
|
21
|
+
private expression;
|
|
18
22
|
private objectType;
|
|
19
23
|
}
|
package/dist/openapi/schema.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { list, object, pointer, string } from './document.js';
|
|
2
2
|
import { comment, identifier } from './names.js';
|
|
3
|
+
import { atom, intersection, literalType, neverType, parameterKind, renderType, union, unknownType, } from './type-expression.js';
|
|
3
4
|
const unsupported = [
|
|
4
5
|
'$dynamicRef',
|
|
5
6
|
'$dynamicAnchor',
|
|
@@ -9,6 +10,7 @@ const unsupported = [
|
|
|
9
10
|
'then',
|
|
10
11
|
'else',
|
|
11
12
|
'dependentSchemas',
|
|
13
|
+
'dependentRequired',
|
|
12
14
|
'patternProperties',
|
|
13
15
|
'unevaluatedProperties',
|
|
14
16
|
'unevaluatedItems',
|
|
@@ -21,6 +23,7 @@ export class Schemas {
|
|
|
21
23
|
models = new Map();
|
|
22
24
|
variants = new Map();
|
|
23
25
|
contexts = new Map();
|
|
26
|
+
resolvedTypes = new Map();
|
|
24
27
|
constructor(document, names) {
|
|
25
28
|
this.document = document;
|
|
26
29
|
this.names = names;
|
|
@@ -29,48 +32,48 @@ export class Schemas {
|
|
|
29
32
|
this.models.set(pointer('components', 'schemas', key), name);
|
|
30
33
|
}
|
|
31
34
|
for (const [ref, name] of this.models) {
|
|
32
|
-
this.checkAliases(document.reference(ref, ref), [ref]);
|
|
35
|
+
this.checkAliases(document.reference(ref, ref), ref, [ref]);
|
|
33
36
|
for (const mode of ['input', 'output']) {
|
|
34
|
-
if (this.needsVariant(document.reference(ref, ref), mode)) {
|
|
37
|
+
if (this.needsVariant(document.reference(ref, ref), ref, mode)) {
|
|
35
38
|
this.variants.set(mode + ref, names.reserve(name + (mode === 'input' ? 'Input' : 'Output'), `${ref} (${mode})`));
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
41
|
}
|
|
39
42
|
}
|
|
40
|
-
checkAliases(value, trail) {
|
|
43
|
+
checkAliases(value, location, trail) {
|
|
41
44
|
if (typeof value === 'boolean')
|
|
42
45
|
return;
|
|
43
|
-
const schema = object(value,
|
|
46
|
+
const schema = object(value, location);
|
|
44
47
|
if (typeof schema.$ref === 'string') {
|
|
45
|
-
const ref = this.document.canonicalReference(schema.$ref,
|
|
48
|
+
const ref = this.document.canonicalReference(schema.$ref, location);
|
|
46
49
|
if (trail.includes(ref))
|
|
47
50
|
throw new Error(`${ref}: circular type aliases must pass through an object property or array item.`);
|
|
48
|
-
this.checkAliases(this.document.reference(ref,
|
|
51
|
+
this.checkAliases(this.document.reference(ref, location), ref, [...trail, ref]);
|
|
49
52
|
}
|
|
50
53
|
for (const key of ['allOf', 'oneOf', 'anyOf']) {
|
|
51
54
|
if (Array.isArray(schema[key]))
|
|
52
|
-
for (const child of schema[key])
|
|
53
|
-
this.checkAliases(child, trail);
|
|
55
|
+
for (const [index, child] of schema[key].entries())
|
|
56
|
+
this.checkAliases(child, `${location}/${key}/${index}`, trail);
|
|
54
57
|
}
|
|
55
58
|
}
|
|
56
|
-
needsVariant(value, mode, visited = new Set()) {
|
|
59
|
+
needsVariant(value, location, mode, visited = new Set()) {
|
|
57
60
|
if (value === null || typeof value !== 'object' || visited.has(value))
|
|
58
61
|
return false;
|
|
59
62
|
visited.add(value);
|
|
60
63
|
if (Array.isArray(value))
|
|
61
|
-
return value.some((item) => this.needsVariant(item, mode, visited));
|
|
64
|
+
return value.some((item, index) => this.needsVariant(item, `${location}/${index}`, mode, visited));
|
|
62
65
|
const schema = value;
|
|
63
66
|
if (schema[mode === 'input' ? 'readOnly' : 'writeOnly'] === true)
|
|
64
67
|
return true;
|
|
65
|
-
if (typeof schema.$ref === 'string' && this.needsVariant(this.document.reference(schema.$ref, schema.$ref
|
|
68
|
+
if (typeof schema.$ref === 'string' && this.needsVariant(this.document.reference(schema.$ref, location), schema.$ref, mode, visited))
|
|
66
69
|
return true;
|
|
67
70
|
// Only schema-bearing keywords are traversed; examples/defaults may contain arbitrary data.
|
|
68
71
|
return ['properties', 'items', 'additionalProperties', 'allOf', 'oneOf', 'anyOf'].some((key) => {
|
|
69
72
|
const child = schema[key];
|
|
70
73
|
if (key === 'properties' && child && typeof child === 'object') {
|
|
71
|
-
return Object.
|
|
74
|
+
return Object.entries(child).some(([name, property]) => this.needsVariant(property, `${location}${pointer('properties', name).slice(1)}`, mode, visited));
|
|
72
75
|
}
|
|
73
|
-
return this.needsVariant(child, mode, visited);
|
|
76
|
+
return this.needsVariant(child, `${location}/${key}`, mode, visited);
|
|
74
77
|
});
|
|
75
78
|
}
|
|
76
79
|
metadata(value, location, visited = new Set()) {
|
|
@@ -107,7 +110,7 @@ export class Schemas {
|
|
|
107
110
|
return excluded;
|
|
108
111
|
}
|
|
109
112
|
for (const [name, property] of Object.entries(object(schema.properties ?? {}, `${location}/properties`))) {
|
|
110
|
-
const metadata = this.metadata(property, `${location}
|
|
113
|
+
const metadata = this.metadata(property, `${location}${pointer('properties', name).slice(1)}`);
|
|
111
114
|
if (metadata[mode === 'input' ? 'readOnly' : 'writeOnly'] === true)
|
|
112
115
|
excluded.add(name);
|
|
113
116
|
}
|
|
@@ -132,28 +135,50 @@ export class Schemas {
|
|
|
132
135
|
}
|
|
133
136
|
}
|
|
134
137
|
for (const context of this.contexts.values())
|
|
135
|
-
result.push(`type ${context.name} = ${context.type};`);
|
|
138
|
+
result.push(`type ${context.name} = ${renderType(context.type ?? unknownType)};`);
|
|
136
139
|
return result.join('\n\n');
|
|
137
140
|
}
|
|
138
141
|
contextualType(ref, mode, excluded, name, trail) {
|
|
139
142
|
const key = JSON.stringify([ref, mode, [...excluded].sort()]);
|
|
140
143
|
const existing = this.contexts.get(key);
|
|
141
144
|
if (existing)
|
|
142
|
-
return existing.name;
|
|
145
|
+
return { kind: 'reference', name: existing.name, resolve: () => existing.type };
|
|
143
146
|
const context = {
|
|
144
147
|
name: this.names.reserve(`${name}Context${this.contexts.size + 1}`, `${ref} (${mode}, contextual fields)`),
|
|
145
|
-
type:
|
|
148
|
+
type: undefined,
|
|
146
149
|
};
|
|
147
150
|
// Reserve the alias before rendering its body so recursive contextual references can use the same name.
|
|
148
151
|
this.contexts.set(key, context);
|
|
149
|
-
context.type = this.
|
|
150
|
-
return context.name;
|
|
152
|
+
context.type = this.expression(this.document.reference(ref, ref), ref, mode, [...trail, ref], excluded);
|
|
153
|
+
return { kind: 'reference', name: context.name, resolve: () => context.type };
|
|
151
154
|
}
|
|
152
155
|
type(value, location, mode = 'model', trail = [], excluded = new Set()) {
|
|
156
|
+
return renderType(this.expression(value, location, mode, trail, excluded));
|
|
157
|
+
}
|
|
158
|
+
parameterKind(value, location) {
|
|
159
|
+
return parameterKind(this.expression(value, location, 'input'), location);
|
|
160
|
+
}
|
|
161
|
+
referenceType(ref, name, mode, trail, excluded) {
|
|
162
|
+
const key = JSON.stringify([ref, mode, [...excluded].sort()]);
|
|
163
|
+
return {
|
|
164
|
+
kind: 'reference',
|
|
165
|
+
name,
|
|
166
|
+
resolve: () => {
|
|
167
|
+
if (this.resolvedTypes.has(key))
|
|
168
|
+
return this.resolvedTypes.get(key);
|
|
169
|
+
// An in-progress reference stays symbolic so recursive object fields do not expand forever.
|
|
170
|
+
this.resolvedTypes.set(key, undefined);
|
|
171
|
+
const type = this.expression(this.document.reference(ref, ref), ref, mode, [...trail, ref], excluded);
|
|
172
|
+
this.resolvedTypes.set(key, type);
|
|
173
|
+
return type;
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
expression(value, location, mode = 'model', trail = [], excluded = new Set()) {
|
|
153
178
|
if (typeof value === 'boolean') {
|
|
154
179
|
if (this.document.version === '3.0')
|
|
155
180
|
throw new Error(`${location}: boolean schemas require OpenAPI 3.1.`);
|
|
156
|
-
return value ?
|
|
181
|
+
return value ? unknownType : neverType;
|
|
157
182
|
}
|
|
158
183
|
const schema = object(value, location);
|
|
159
184
|
const excludedHere = new Set([...excluded, ...this.excludedProperties(schema, location, mode)]);
|
|
@@ -172,14 +197,13 @@ export class Schemas {
|
|
|
172
197
|
const type = name
|
|
173
198
|
? hasContextExclusions
|
|
174
199
|
? this.contextualType(ref, mode, excludedHere, name, trail)
|
|
175
|
-
: name
|
|
176
|
-
: this.
|
|
200
|
+
: this.referenceType(ref, name, mode, trail, excludedHere)
|
|
201
|
+
: this.expression(referenced, ref, mode, [...trail, ref], excludedHere);
|
|
177
202
|
if (this.document.version === '3.0')
|
|
178
203
|
return type;
|
|
179
204
|
const siblings = { ...schema };
|
|
180
205
|
delete siblings.$ref;
|
|
181
|
-
|
|
182
|
-
return siblingType === 'unknown' ? type : `(${type}) & (${siblingType})`;
|
|
206
|
+
return intersection(type, this.expression(siblings, location, mode, trail, excludedHere));
|
|
183
207
|
}
|
|
184
208
|
const constraints = [];
|
|
185
209
|
for (const key of ['allOf', 'oneOf', 'anyOf']) {
|
|
@@ -187,8 +211,8 @@ export class Schemas {
|
|
|
187
211
|
const members = list(schema[key], `${location}/${key}`);
|
|
188
212
|
if (!members.length)
|
|
189
213
|
throw new Error(`${location}/${key} must not be empty.`);
|
|
190
|
-
const types = members.map((member, index) =>
|
|
191
|
-
constraints.push(
|
|
214
|
+
const types = members.map((member, index) => this.expression(member, `${location}/${key}/${index}`, mode, trail, excludedHere));
|
|
215
|
+
constraints.push(key === 'allOf' ? intersection(...types) : union(...types));
|
|
192
216
|
}
|
|
193
217
|
}
|
|
194
218
|
let types = schema.type === undefined ? [] : Array.isArray(schema.type) ? schema.type : [schema.type];
|
|
@@ -205,18 +229,21 @@ export class Schemas {
|
|
|
205
229
|
case 'null':
|
|
206
230
|
if (this.document.version === '3.0' && schema.type !== undefined)
|
|
207
231
|
throw new Error(`${location}: use nullable in OpenAPI 3.0.`);
|
|
208
|
-
return 'null';
|
|
232
|
+
return atom('null');
|
|
209
233
|
case 'string':
|
|
210
|
-
return schema.format === 'binary' ? 'Blob' : 'string';
|
|
234
|
+
return atom(schema.format === 'binary' ? 'Blob' : 'string');
|
|
211
235
|
case 'number':
|
|
212
236
|
case 'integer':
|
|
213
|
-
return 'number';
|
|
237
|
+
return atom('number');
|
|
214
238
|
case 'boolean':
|
|
215
|
-
return 'boolean';
|
|
239
|
+
return atom('boolean');
|
|
216
240
|
case 'array':
|
|
217
241
|
if (schema.items === undefined && this.document.version === '3.0' && schema.type !== undefined)
|
|
218
242
|
throw new Error(`${location}/items is required for arrays.`);
|
|
219
|
-
return
|
|
243
|
+
return {
|
|
244
|
+
kind: 'array',
|
|
245
|
+
item: schema.items === undefined ? unknownType : this.expression(schema.items, `${location}/items`, mode, trail),
|
|
246
|
+
};
|
|
220
247
|
case 'object':
|
|
221
248
|
return this.objectType(schema, location, mode, trail, excludedHere);
|
|
222
249
|
default:
|
|
@@ -225,23 +252,21 @@ export class Schemas {
|
|
|
225
252
|
});
|
|
226
253
|
if (primitives.length) {
|
|
227
254
|
if (this.document.version === '3.0' && schema.type !== undefined && schema.nullable === true)
|
|
228
|
-
primitives.push('null');
|
|
229
|
-
constraints.push(
|
|
255
|
+
primitives.push(atom('null'));
|
|
256
|
+
constraints.push(union(...primitives));
|
|
230
257
|
}
|
|
231
258
|
if (schema.enum !== undefined) {
|
|
232
259
|
const values = list(schema.enum, `${location}/enum`);
|
|
233
260
|
if (!values.length)
|
|
234
261
|
throw new Error(`${location}/enum must not be empty.`);
|
|
235
|
-
constraints.push(
|
|
262
|
+
constraints.push(union(...values.map((item) => literalType(item, `${location}/enum`))));
|
|
236
263
|
}
|
|
237
264
|
if (schema.const !== undefined || Object.hasOwn(schema, 'const')) {
|
|
238
265
|
if (this.document.version === '3.0')
|
|
239
266
|
throw new Error(`${location}: const requires OpenAPI 3.1.`);
|
|
240
|
-
constraints.push(
|
|
267
|
+
constraints.push(literalType(schema.const, `${location}/const`));
|
|
241
268
|
}
|
|
242
|
-
|
|
243
|
-
return 'unknown';
|
|
244
|
-
return constraints.length === 1 ? constraints[0] : constraints.map((part) => `(${part})`).join(' & ');
|
|
269
|
+
return intersection(...constraints);
|
|
245
270
|
}
|
|
246
271
|
objectType(schema, location, mode, trail, excluded) {
|
|
247
272
|
const properties = schema.properties === undefined ? {} : object(schema.properties, `${location}/properties`);
|
|
@@ -252,13 +277,17 @@ export class Schemas {
|
|
|
252
277
|
throw new Error(`${location}/required/${index} must be a string.`);
|
|
253
278
|
return key;
|
|
254
279
|
}));
|
|
255
|
-
const fields =
|
|
280
|
+
const fields = new Map();
|
|
256
281
|
for (const [name, value] of Object.entries(properties)) {
|
|
257
282
|
if (excluded.has(name))
|
|
258
283
|
continue;
|
|
259
|
-
const
|
|
260
|
-
const
|
|
261
|
-
fields.
|
|
284
|
+
const propertyLocation = `${location}${pointer('properties', name).slice(1)}`;
|
|
285
|
+
const metadata = this.metadata(value, propertyLocation);
|
|
286
|
+
fields.set(name, {
|
|
287
|
+
type: this.expression(value, propertyLocation, mode, trail),
|
|
288
|
+
optional: !required.has(name),
|
|
289
|
+
description: metadata.description,
|
|
290
|
+
});
|
|
262
291
|
}
|
|
263
292
|
for (const name of required) {
|
|
264
293
|
if (excluded.has(name))
|
|
@@ -266,48 +295,25 @@ export class Schemas {
|
|
|
266
295
|
if (!Object.hasOwn(properties, name)) {
|
|
267
296
|
const extra = schema.additionalProperties;
|
|
268
297
|
const type = extra === false
|
|
269
|
-
?
|
|
298
|
+
? neverType
|
|
270
299
|
: extra === undefined || extra === true
|
|
271
|
-
?
|
|
272
|
-
: this.
|
|
273
|
-
fields.
|
|
300
|
+
? unknownType
|
|
301
|
+
: this.expression(extra, `${location}/additionalProperties`, mode, trail);
|
|
302
|
+
fields.set(name, { type, optional: false });
|
|
274
303
|
}
|
|
275
304
|
}
|
|
276
305
|
const extra = schema.additionalProperties;
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
306
|
+
const extraType = extra === false
|
|
307
|
+
? false
|
|
308
|
+
: extra === undefined || extra === true
|
|
309
|
+
? unknownType
|
|
310
|
+
: this.expression(extra, `${location}/additionalProperties`, mode, trail);
|
|
311
|
+
if (extra !== undefined && extra !== true && extra !== false) {
|
|
312
|
+
if (Object.keys(properties).length && renderType(extraType || neverType) !== 'unknown') {
|
|
283
313
|
throw new Error(`${location}: typed additionalProperties alongside named properties cannot be represented exactly in TypeScript. Use a separate dictionary property.`);
|
|
284
314
|
}
|
|
285
|
-
fields.push(`[key: string]: ${type};`);
|
|
286
315
|
}
|
|
287
|
-
return fields
|
|
288
|
-
? `{\n${fields
|
|
289
|
-
.join('\n')
|
|
290
|
-
.split('\n')
|
|
291
|
-
.map((line) => ` ${line}`)
|
|
292
|
-
.join('\n')}\n}`
|
|
293
|
-
: 'Record<string, never>';
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
function literal(value, location) {
|
|
297
|
-
if (value === null || typeof value === 'string' || typeof value === 'boolean' || (typeof value === 'number' && Number.isFinite(value))) {
|
|
298
|
-
return JSON.stringify(value);
|
|
299
|
-
}
|
|
300
|
-
if (Array.isArray(value))
|
|
301
|
-
return `[${value.map((item) => literal(item, location)).join(', ')}]`;
|
|
302
|
-
if (value && typeof value === 'object') {
|
|
303
|
-
if (!Object.keys(value).length)
|
|
304
|
-
return 'Record<string, never>';
|
|
305
|
-
return ('{ ' +
|
|
306
|
-
Object.entries(value)
|
|
307
|
-
.map(([key, item]) => `${JSON.stringify(key)}: ${literal(item, location)}`)
|
|
308
|
-
.join('; ') +
|
|
309
|
-
' }');
|
|
316
|
+
return { kind: 'object', fields, extra: extraType };
|
|
310
317
|
}
|
|
311
|
-
throw new Error(`${location}: expected a JSON value.`);
|
|
312
318
|
}
|
|
313
319
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/openapi/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/openapi/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export interface Field {
|
|
2
|
+
type: TypeExpression;
|
|
3
|
+
optional: boolean;
|
|
4
|
+
description?: unknown;
|
|
5
|
+
}
|
|
6
|
+
export type TypeExpression = {
|
|
7
|
+
kind: 'atom';
|
|
8
|
+
name: string;
|
|
9
|
+
} | {
|
|
10
|
+
kind: 'literal';
|
|
11
|
+
value: string | number | boolean | null;
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'reference';
|
|
14
|
+
name: string;
|
|
15
|
+
resolve: () => TypeExpression | undefined;
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'object';
|
|
18
|
+
fields: Map<string, Field>;
|
|
19
|
+
extra: TypeExpression | false;
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'array';
|
|
22
|
+
item: TypeExpression;
|
|
23
|
+
} | {
|
|
24
|
+
kind: 'tuple';
|
|
25
|
+
items: TypeExpression[];
|
|
26
|
+
} | {
|
|
27
|
+
kind: 'union' | 'intersection';
|
|
28
|
+
members: TypeExpression[];
|
|
29
|
+
};
|
|
30
|
+
export declare const atom: (name: string) => TypeExpression;
|
|
31
|
+
export declare const unknownType: TypeExpression;
|
|
32
|
+
export declare const neverType: TypeExpression;
|
|
33
|
+
export declare function union(...types: TypeExpression[]): TypeExpression;
|
|
34
|
+
export declare function intersection(...types: TypeExpression[]): TypeExpression;
|
|
35
|
+
export declare function literalType(value: unknown, location: string): TypeExpression;
|
|
36
|
+
export declare function renderType(type: TypeExpression): string;
|
|
37
|
+
/** Parameter serialization supports scalars, scalar arrays and objects with scalar properties. */
|
|
38
|
+
export declare function parameterKind(type: TypeExpression, location: string, resolving?: Set<string>): 'scalar' | 'array' | 'object';
|