oazapfts 3.5.0 → 3.6.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.
- package/lib/codegen/cli.js +2 -2
- package/lib/codegen/cli.js.map +1 -1
- package/lib/codegen/generate.d.ts +5 -5
- package/lib/codegen/generate.js +86 -80
- package/lib/codegen/generate.js.map +1 -1
- package/lib/codegen/generate.test.js +6 -6
- package/lib/codegen/generate.test.js.map +1 -1
- package/lib/codegen/generateServers.js +5 -1
- package/lib/codegen/generateServers.js.map +1 -1
- package/lib/codegen/generateServers.test.js +8 -4
- package/lib/codegen/generateServers.test.js.map +1 -1
- package/lib/codegen/index.js +5 -1
- package/lib/codegen/index.js.map +1 -1
- package/lib/codegen/tscodegen.js +5 -1
- package/lib/codegen/tscodegen.js.map +1 -1
- package/lib/codegen/tscodegen.test.js +7 -7
- package/lib/codegen/tscodegen.test.js.map +1 -1
- package/lib/runtime/index.d.ts +4 -4
- package/lib/runtime/index.js +7 -3
- package/lib/runtime/index.js.map +1 -1
- package/lib/runtime/index.test.js +5 -1
- package/lib/runtime/index.test.js.map +1 -1
- package/lib/runtime/query.js +6 -6
- package/lib/runtime/query.js.map +1 -1
- package/lib/runtime/query.test.js +5 -1
- package/lib/runtime/query.test.js.map +1 -1
- package/lib/runtime/util.test.js +5 -1
- package/lib/runtime/util.test.js.map +1 -1
- package/package.json +6 -6
- package/src/codegen/generate.ts +154 -152
package/lib/codegen/cli.js
CHANGED
|
@@ -16,7 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
16
16
|
const fs_1 = __importDefault(require("fs"));
|
|
17
17
|
const minimist_1 = __importDefault(require("minimist"));
|
|
18
18
|
const _1 = require("./");
|
|
19
|
-
const argv = minimist_1.default(process.argv.slice(2), {
|
|
19
|
+
const argv = (0, minimist_1.default)(process.argv.slice(2), {
|
|
20
20
|
alias: {
|
|
21
21
|
i: "include",
|
|
22
22
|
e: "exclude",
|
|
@@ -25,7 +25,7 @@ const argv = minimist_1.default(process.argv.slice(2), {
|
|
|
25
25
|
});
|
|
26
26
|
function generate(spec, dest, opts) {
|
|
27
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
const code = yield _1.generateSource(spec, opts);
|
|
28
|
+
const code = yield (0, _1.generateSource)(spec, opts);
|
|
29
29
|
if (dest)
|
|
30
30
|
fs_1.default.writeFileSync(dest, code);
|
|
31
31
|
else
|
package/lib/codegen/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAAoB;AACpB,wDAAgC;AAEhC,yBAA0C;AAE1C,MAAM,IAAI,GAAG,kBAAQ,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAAoB;AACpB,wDAAgC;AAEhC,yBAA0C;AAE1C,MAAM,IAAI,GAAG,IAAA,kBAAQ,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IAC3C,KAAK,EAAE;QACL,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;KACb;IACD,OAAO,EAAE,CAAC,YAAY,CAAC;CACxB,CAAC,CAAC;AAEH,SAAe,QAAQ,CAAC,IAAY,EAAE,IAAY,EAAE,IAAU;;QAC5D,MAAM,IAAI,GAAG,MAAM,IAAA,iBAAc,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,IAAI;YAAE,YAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;YAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CAAA;AAED,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;AAC9C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC5B,IAAI,CAAC,IAAI,EAAE;IACT,OAAO,CAAC,KAAK,CAAC;;;;;;;;CAQf,CAAC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;IACnB,OAAO;IACP,OAAO;IACP,UAAU;CACX,CAAC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import ts from
|
|
2
|
-
import { OpenAPIV3 } from
|
|
3
|
-
import { Opts } from
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import { OpenAPIV3 } from 'openapi-types';
|
|
3
|
+
import { Opts } from '.';
|
|
4
4
|
export declare const verbs: string[];
|
|
5
|
-
declare type ContentType =
|
|
5
|
+
declare type ContentType = 'json' | 'form' | 'multipart';
|
|
6
6
|
export declare const contentTypes: Record<string, ContentType>;
|
|
7
7
|
/**
|
|
8
8
|
* Get the name of a formatter function for a given parameter.
|
|
@@ -85,7 +85,7 @@ export default class ApiGenerator {
|
|
|
85
85
|
}, required?: string[], additionalProperties?: boolean | OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject): ts.TypeLiteralNode;
|
|
86
86
|
getTypeFromResponses(responses: OpenAPIV3.ResponsesObject): ts.UnionTypeNode;
|
|
87
87
|
getTypeFromResponse(resOrRef: OpenAPIV3.ResponseObject | OpenAPIV3.ReferenceObject): ts.TypeNode;
|
|
88
|
-
getResponseType(responses?: OpenAPIV3.ResponsesObject):
|
|
88
|
+
getResponseType(responses?: OpenAPIV3.ResponsesObject): 'json' | 'text' | 'blob';
|
|
89
89
|
getSchemaFromContent(content: any): any;
|
|
90
90
|
wrapResult(ex: ts.Expression): ts.Expression;
|
|
91
91
|
generateApi(): ts.SourceFile;
|
package/lib/codegen/generate.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -29,33 +33,33 @@ const path_1 = __importDefault(require("path"));
|
|
|
29
33
|
const cg = __importStar(require("./tscodegen"));
|
|
30
34
|
const generateServers_1 = __importStar(require("./generateServers"));
|
|
31
35
|
exports.verbs = [
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
'GET',
|
|
37
|
+
'PUT',
|
|
38
|
+
'POST',
|
|
39
|
+
'DELETE',
|
|
40
|
+
'OPTIONS',
|
|
41
|
+
'HEAD',
|
|
42
|
+
'PATCH',
|
|
43
|
+
'TRACE',
|
|
40
44
|
];
|
|
41
45
|
exports.contentTypes = {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
'*/*': 'json',
|
|
47
|
+
'application/json': 'json',
|
|
48
|
+
'application/hal+json': 'json',
|
|
49
|
+
'application/x-www-form-urlencoded': 'form',
|
|
50
|
+
'multipart/form-data': 'multipart',
|
|
47
51
|
};
|
|
48
52
|
/**
|
|
49
53
|
* Get the name of a formatter function for a given parameter.
|
|
50
54
|
*/
|
|
51
55
|
function getFormatter({ style, explode }) {
|
|
52
|
-
if (style ===
|
|
53
|
-
return
|
|
54
|
-
if (style ===
|
|
55
|
-
return
|
|
56
|
-
if (style ===
|
|
57
|
-
return
|
|
58
|
-
return explode ?
|
|
56
|
+
if (style === 'spaceDelimited')
|
|
57
|
+
return 'space';
|
|
58
|
+
if (style === 'pipeDelimited')
|
|
59
|
+
return 'pipe';
|
|
60
|
+
if (style === 'deepObject')
|
|
61
|
+
return 'deep';
|
|
62
|
+
return explode ? 'explode' : 'form';
|
|
59
63
|
}
|
|
60
64
|
exports.getFormatter = getFormatter;
|
|
61
65
|
function getOperationIdentifier(id) {
|
|
@@ -76,7 +80,7 @@ function getOperationName(verb, path, operationId) {
|
|
|
76
80
|
const id = getOperationIdentifier(operationId);
|
|
77
81
|
if (id)
|
|
78
82
|
return id;
|
|
79
|
-
path = path.replace(/\{(.+?)\}/,
|
|
83
|
+
path = path.replace(/\{(.+?)\}/, 'by $1').replace(/\{(.+?)\}/, 'and $1');
|
|
80
84
|
return lodash_1.default.camelCase(`${verb} ${path}`);
|
|
81
85
|
}
|
|
82
86
|
exports.getOperationName = getOperationName;
|
|
@@ -85,17 +89,17 @@ function isNullable(schema) {
|
|
|
85
89
|
}
|
|
86
90
|
exports.isNullable = isNullable;
|
|
87
91
|
function isReference(obj) {
|
|
88
|
-
return obj &&
|
|
92
|
+
return obj && '$ref' in obj;
|
|
89
93
|
}
|
|
90
94
|
exports.isReference = isReference;
|
|
91
95
|
//See https://swagger.io/docs/specification/using-ref/
|
|
92
96
|
function getReference(spec, ref) {
|
|
93
97
|
const path = ref
|
|
94
98
|
.slice(2)
|
|
95
|
-
.split(
|
|
96
|
-
.map((s) => unescape(s.replace(/~1/g,
|
|
99
|
+
.split('/')
|
|
100
|
+
.map((s) => unescape(s.replace(/~1/g, '/').replace(/~0/g, '~')));
|
|
97
101
|
const ret = lodash_1.default.get(spec, path);
|
|
98
|
-
if (typeof ret ===
|
|
102
|
+
if (typeof ret === 'undefined') {
|
|
99
103
|
throw new Error(`Can't find ${path}`);
|
|
100
104
|
}
|
|
101
105
|
return ret;
|
|
@@ -106,7 +110,7 @@ exports.getReference = getReference;
|
|
|
106
110
|
*/
|
|
107
111
|
function getReferenceName(obj) {
|
|
108
112
|
if (isReference(obj)) {
|
|
109
|
-
return lodash_1.default.camelCase(obj.$ref.split(
|
|
113
|
+
return lodash_1.default.camelCase(obj.$ref.split('/').slice(-1)[0]);
|
|
110
114
|
}
|
|
111
115
|
}
|
|
112
116
|
exports.getReferenceName = getReferenceName;
|
|
@@ -125,7 +129,7 @@ function createUrlExpression(path, qs) {
|
|
|
125
129
|
});
|
|
126
130
|
if (qs) {
|
|
127
131
|
// add the query string as last span
|
|
128
|
-
spans.push({ expression: qs, literal:
|
|
132
|
+
spans.push({ expression: qs, literal: '' });
|
|
129
133
|
}
|
|
130
134
|
return cg.createTemplateString(head, spans);
|
|
131
135
|
}
|
|
@@ -134,14 +138,14 @@ exports.createUrlExpression = createUrlExpression;
|
|
|
134
138
|
* Create a call expression for one of the QS runtime functions.
|
|
135
139
|
*/
|
|
136
140
|
function callQsFunction(name, args) {
|
|
137
|
-
return cg.createCall(typescript_1.factory.createPropertyAccessExpression(typescript_1.factory.createIdentifier(
|
|
141
|
+
return cg.createCall(typescript_1.factory.createPropertyAccessExpression(typescript_1.factory.createIdentifier('QS'), name), { args });
|
|
138
142
|
}
|
|
139
143
|
exports.callQsFunction = callQsFunction;
|
|
140
144
|
/**
|
|
141
145
|
* Create a call expression for one of the oazapfts runtime functions.
|
|
142
146
|
*/
|
|
143
147
|
function callOazapftsFunction(name, args, typeArgs) {
|
|
144
|
-
return cg.createCall(typescript_1.factory.createPropertyAccessExpression(typescript_1.factory.createIdentifier(
|
|
148
|
+
return cg.createCall(typescript_1.factory.createPropertyAccessExpression(typescript_1.factory.createIdentifier('oazapfts'), name), { args, typeArgs });
|
|
145
149
|
}
|
|
146
150
|
exports.callOazapftsFunction = callOazapftsFunction;
|
|
147
151
|
/**
|
|
@@ -164,9 +168,9 @@ function supportDeepObjects(params) {
|
|
|
164
168
|
obj = merged[name] = {
|
|
165
169
|
name,
|
|
166
170
|
in: p.in,
|
|
167
|
-
style:
|
|
171
|
+
style: 'deepObject',
|
|
168
172
|
schema: {
|
|
169
|
-
type:
|
|
173
|
+
type: 'object',
|
|
170
174
|
properties: {},
|
|
171
175
|
},
|
|
172
176
|
};
|
|
@@ -202,7 +206,7 @@ class ApiGenerator {
|
|
|
202
206
|
if (!isReference(obj))
|
|
203
207
|
return obj;
|
|
204
208
|
const ref = obj.$ref;
|
|
205
|
-
if (!ref.startsWith(
|
|
209
|
+
if (!ref.startsWith('#/')) {
|
|
206
210
|
throw new Error(`External refs are not supported (${ref}). Make sure to call SwaggerParser.bundle() first.`);
|
|
207
211
|
}
|
|
208
212
|
return getReference(this.spec, ref);
|
|
@@ -232,7 +236,7 @@ class ApiGenerator {
|
|
|
232
236
|
return name;
|
|
233
237
|
}
|
|
234
238
|
getRefBasename(ref) {
|
|
235
|
-
return ref.replace(/.+\//,
|
|
239
|
+
return ref.replace(/.+\//, '');
|
|
236
240
|
}
|
|
237
241
|
/**
|
|
238
242
|
* Create a type alias for the schema referenced by the given ReferenceObject
|
|
@@ -257,7 +261,7 @@ class ApiGenerator {
|
|
|
257
261
|
if (discriminator) {
|
|
258
262
|
// oneOf + discriminator -> tagged union (polymorphism)
|
|
259
263
|
if (discriminator.propertyName === undefined) {
|
|
260
|
-
throw new Error(
|
|
264
|
+
throw new Error('Discriminators require a propertyName');
|
|
261
265
|
}
|
|
262
266
|
// By default, the last component of the ref name (i.e., after the last trailing slash) is
|
|
263
267
|
// used as the discriminator value for each variant. This can be overridden using the
|
|
@@ -273,7 +277,7 @@ class ApiGenerator {
|
|
|
273
277
|
if (!isReference(variant)) {
|
|
274
278
|
// From the Swagger spec: "When using the discriminator, inline schemas will not be
|
|
275
279
|
// considered."
|
|
276
|
-
throw new Error(
|
|
280
|
+
throw new Error('Discriminators require references, not inline schemas');
|
|
277
281
|
}
|
|
278
282
|
return !mappedValues.has(this.getRefBasename(variant.$ref));
|
|
279
283
|
})
|
|
@@ -331,7 +335,7 @@ class ApiGenerator {
|
|
|
331
335
|
// allOf -> intersection
|
|
332
336
|
return typescript_1.factory.createIntersectionTypeNode(schema.allOf.map((schema) => this.getTypeFromSchema(schema)));
|
|
333
337
|
}
|
|
334
|
-
if (
|
|
338
|
+
if ('items' in schema) {
|
|
335
339
|
// items -> array
|
|
336
340
|
return typescript_1.factory.createArrayTypeNode(this.getTypeFromSchema(schema.items));
|
|
337
341
|
}
|
|
@@ -344,22 +348,24 @@ class ApiGenerator {
|
|
|
344
348
|
const types = schema.enum.map((s) => {
|
|
345
349
|
if (s === null)
|
|
346
350
|
return cg.keywordType.null;
|
|
347
|
-
if (typeof s ===
|
|
351
|
+
if (typeof s === 'boolean')
|
|
348
352
|
return s
|
|
349
353
|
? typescript_1.factory.createLiteralTypeNode(typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.TrueKeyword))
|
|
350
354
|
: typescript_1.factory.createLiteralTypeNode(typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.FalseKeyword));
|
|
355
|
+
if (typeof s === 'number')
|
|
356
|
+
return typescript_1.factory.createLiteralTypeNode(typescript_1.factory.createNumericLiteral(s));
|
|
351
357
|
return typescript_1.factory.createLiteralTypeNode(typescript_1.factory.createStringLiteral(s));
|
|
352
358
|
});
|
|
353
359
|
return types.length > 1 ? typescript_1.factory.createUnionTypeNode(types) : types[0];
|
|
354
360
|
}
|
|
355
|
-
if (schema.format ==
|
|
356
|
-
return typescript_1.factory.createTypeReferenceNode(
|
|
361
|
+
if (schema.format == 'binary') {
|
|
362
|
+
return typescript_1.factory.createTypeReferenceNode('Blob', []);
|
|
357
363
|
}
|
|
358
364
|
if (schema.type) {
|
|
359
365
|
// string, boolean, null, number
|
|
360
366
|
if (schema.type in cg.keywordType)
|
|
361
367
|
return cg.keywordType[schema.type];
|
|
362
|
-
if (schema.type ===
|
|
368
|
+
if (schema.type === 'integer')
|
|
363
369
|
return cg.keywordType.number;
|
|
364
370
|
}
|
|
365
371
|
return cg.keywordType.any;
|
|
@@ -387,19 +393,19 @@ class ApiGenerator {
|
|
|
387
393
|
}
|
|
388
394
|
getTypeFromResponses(responses) {
|
|
389
395
|
return typescript_1.factory.createUnionTypeNode(Object.entries(responses).map(([code, res]) => {
|
|
390
|
-
const statusType = code ===
|
|
396
|
+
const statusType = code === 'default'
|
|
391
397
|
? cg.keywordType.number
|
|
392
398
|
: typescript_1.factory.createLiteralTypeNode(typescript_1.factory.createNumericLiteral(code));
|
|
393
399
|
const props = [
|
|
394
400
|
cg.createPropertySignature({
|
|
395
|
-
name:
|
|
401
|
+
name: 'status',
|
|
396
402
|
type: statusType,
|
|
397
403
|
}),
|
|
398
404
|
];
|
|
399
405
|
const dataType = this.getTypeFromResponse(res);
|
|
400
406
|
if (dataType !== cg.keywordType.void) {
|
|
401
407
|
props.push(cg.createPropertySignature({
|
|
402
|
-
name:
|
|
408
|
+
name: 'data',
|
|
403
409
|
type: dataType,
|
|
404
410
|
}));
|
|
405
411
|
}
|
|
@@ -415,33 +421,33 @@ class ApiGenerator {
|
|
|
415
421
|
getResponseType(responses) {
|
|
416
422
|
// backwards-compatibility
|
|
417
423
|
if (!responses)
|
|
418
|
-
return
|
|
424
|
+
return 'text';
|
|
419
425
|
const resolvedResponses = Object.values(responses).map((response) => this.resolve(response));
|
|
420
426
|
// if no content is specified, assume `text` (backwards-compatibility)
|
|
421
427
|
if (!resolvedResponses.some((res) => { var _a; return Object.keys((_a = res.content) !== null && _a !== void 0 ? _a : []).length > 0; })) {
|
|
422
|
-
return
|
|
428
|
+
return 'text';
|
|
423
429
|
}
|
|
424
430
|
const isJson = resolvedResponses.some((response) => {
|
|
425
431
|
var _a;
|
|
426
432
|
const responseMimeTypes = Object.keys((_a = response.content) !== null && _a !== void 0 ? _a : {});
|
|
427
|
-
return responseMimeTypes.some((mimeType) => exports.contentTypes[mimeType] ===
|
|
433
|
+
return responseMimeTypes.some((mimeType) => exports.contentTypes[mimeType] === 'json');
|
|
428
434
|
});
|
|
429
435
|
// if there’s `application/json` or `*/*`, assume `json`
|
|
430
436
|
if (isJson) {
|
|
431
|
-
return
|
|
437
|
+
return 'json';
|
|
432
438
|
}
|
|
433
439
|
// if there’s `text/*`, assume `text`
|
|
434
|
-
if (resolvedResponses.some((res) => { var _a; return Object.keys((_a = res.content) !== null && _a !== void 0 ? _a : []).some((type) => type.startsWith(
|
|
435
|
-
return
|
|
440
|
+
if (resolvedResponses.some((res) => { var _a; return Object.keys((_a = res.content) !== null && _a !== void 0 ? _a : []).some((type) => type.startsWith('text/')); })) {
|
|
441
|
+
return 'text';
|
|
436
442
|
}
|
|
437
443
|
// for the rest, assume `blob`
|
|
438
|
-
return
|
|
444
|
+
return 'blob';
|
|
439
445
|
}
|
|
440
446
|
getSchemaFromContent(content) {
|
|
441
447
|
const contentType = Object.keys(exports.contentTypes).find((t) => t in content);
|
|
442
448
|
let schema;
|
|
443
449
|
if (contentType) {
|
|
444
|
-
schema = lodash_1.default.get(content, [contentType,
|
|
450
|
+
schema = lodash_1.default.get(content, [contentType, 'schema']);
|
|
445
451
|
}
|
|
446
452
|
if (schema) {
|
|
447
453
|
return schema;
|
|
@@ -449,31 +455,31 @@ class ApiGenerator {
|
|
|
449
455
|
// if no content is specified -> string
|
|
450
456
|
// `text/*` -> string
|
|
451
457
|
if (Object.keys(content).length === 0 ||
|
|
452
|
-
Object.keys(content).some((type) => type.startsWith(
|
|
453
|
-
return { type:
|
|
458
|
+
Object.keys(content).some((type) => type.startsWith('text/'))) {
|
|
459
|
+
return { type: 'string' };
|
|
454
460
|
}
|
|
455
461
|
// rest (e.g. `application/octet-stream`, `application/gzip`, …) -> binary
|
|
456
|
-
return { type:
|
|
462
|
+
return { type: 'string', format: 'binary' };
|
|
457
463
|
}
|
|
458
464
|
wrapResult(ex) {
|
|
459
465
|
var _a;
|
|
460
|
-
return ((_a = this.opts) === null || _a === void 0 ? void 0 : _a.optimistic) ? callOazapftsFunction(
|
|
466
|
+
return ((_a = this.opts) === null || _a === void 0 ? void 0 : _a.optimistic) ? callOazapftsFunction('ok', [ex]) : ex;
|
|
461
467
|
}
|
|
462
468
|
generateApi() {
|
|
463
469
|
this.reset();
|
|
464
470
|
// Parse ApiStub.ts so that we don't have to generate everything manually
|
|
465
|
-
const stub = cg.parseFile(path_1.default.resolve(__dirname,
|
|
471
|
+
const stub = cg.parseFile(path_1.default.resolve(__dirname, '../../src/codegen/ApiStub.ts'));
|
|
466
472
|
// ApiStub contains `const servers = {}`, find it ...
|
|
467
|
-
const servers = cg.findFirstVariableDeclaration(stub.statements,
|
|
473
|
+
const servers = cg.findFirstVariableDeclaration(stub.statements, 'servers');
|
|
468
474
|
// servers.initializer is readonly, this might break in a future TS version, but works fine for now.
|
|
469
475
|
Object.assign(servers, {
|
|
470
|
-
initializer: generateServers_1.default(this.spec.servers || []),
|
|
476
|
+
initializer: (0, generateServers_1.default)(this.spec.servers || []),
|
|
471
477
|
});
|
|
472
|
-
const { initializer } = cg.findFirstVariableDeclaration(stub.statements,
|
|
478
|
+
const { initializer } = cg.findFirstVariableDeclaration(stub.statements, 'defaults');
|
|
473
479
|
if (!initializer || !typescript_1.default.isObjectLiteralExpression(initializer)) {
|
|
474
|
-
throw new Error(
|
|
480
|
+
throw new Error('No object literal: defaults');
|
|
475
481
|
}
|
|
476
|
-
cg.changePropertyValue(initializer,
|
|
482
|
+
cg.changePropertyValue(initializer, 'baseUrl', (0, generateServers_1.defaultBaseUrl)(this.spec.servers || []));
|
|
477
483
|
// Collect class functions to be added...
|
|
478
484
|
const functions = [];
|
|
479
485
|
// Keep track of names to detect duplicates
|
|
@@ -511,7 +517,7 @@ class ApiGenerator {
|
|
|
511
517
|
? supportDeepObjects(resolvedParameters)
|
|
512
518
|
: resolvedParameters;
|
|
513
519
|
// split into required/optional
|
|
514
|
-
const [required, optional] = lodash_1.default.partition(parameters,
|
|
520
|
+
const [required, optional] = lodash_1.default.partition(parameters, 'required');
|
|
515
521
|
// convert parameter names to argument names ...
|
|
516
522
|
const argNames = {};
|
|
517
523
|
parameters
|
|
@@ -531,7 +537,7 @@ class ApiGenerator {
|
|
|
531
537
|
body = this.resolve(requestBody);
|
|
532
538
|
const schema = this.getSchemaFromContent(body.content);
|
|
533
539
|
const type = this.getTypeFromSchema(schema);
|
|
534
|
-
bodyVar = lodash_1.default.camelCase(type.name || getReferenceName(schema) ||
|
|
540
|
+
bodyVar = lodash_1.default.camelCase(type.name || getReferenceName(schema) || 'body');
|
|
535
541
|
methodParams.push(cg.createParameter(bodyVar, {
|
|
536
542
|
type,
|
|
537
543
|
questionToken: !body.required,
|
|
@@ -550,20 +556,20 @@ class ApiGenerator {
|
|
|
550
556
|
}))),
|
|
551
557
|
}));
|
|
552
558
|
}
|
|
553
|
-
methodParams.push(cg.createParameter(
|
|
554
|
-
type: typescript_1.factory.createTypeReferenceNode(
|
|
559
|
+
methodParams.push(cg.createParameter('opts', {
|
|
560
|
+
type: typescript_1.factory.createTypeReferenceNode('Oazapfts.RequestOpts', undefined),
|
|
555
561
|
questionToken: true,
|
|
556
562
|
}));
|
|
557
563
|
// Next, build the method body...
|
|
558
564
|
const returnType = this.getResponseType(responses);
|
|
559
|
-
const query = parameters.filter((p) => p.in ===
|
|
565
|
+
const query = parameters.filter((p) => p.in === 'query');
|
|
560
566
|
const header = parameters
|
|
561
|
-
.filter((p) => p.in ===
|
|
567
|
+
.filter((p) => p.in === 'header')
|
|
562
568
|
.map((p) => p.name);
|
|
563
569
|
let qs;
|
|
564
570
|
if (query.length) {
|
|
565
571
|
const paramsByFormatter = lodash_1.default.groupBy(query, getFormatter);
|
|
566
|
-
qs = callQsFunction(
|
|
572
|
+
qs = callQsFunction('query', Object.entries(paramsByFormatter).map(([format, params]) => {
|
|
567
573
|
//const [allowReserved, encodeReserved] = _.partition(params, "allowReserved");
|
|
568
574
|
return callQsFunction(format, [
|
|
569
575
|
cg.createObjectLiteral(params.map((p) => [p.name, argNames[p.name]])),
|
|
@@ -572,24 +578,24 @@ class ApiGenerator {
|
|
|
572
578
|
}
|
|
573
579
|
const url = createUrlExpression(path, qs);
|
|
574
580
|
const init = [
|
|
575
|
-
typescript_1.factory.createSpreadAssignment(typescript_1.factory.createIdentifier(
|
|
581
|
+
typescript_1.factory.createSpreadAssignment(typescript_1.factory.createIdentifier('opts')),
|
|
576
582
|
];
|
|
577
|
-
if (method !==
|
|
578
|
-
init.push(typescript_1.factory.createPropertyAssignment(
|
|
583
|
+
if (method !== 'GET') {
|
|
584
|
+
init.push(typescript_1.factory.createPropertyAssignment('method', typescript_1.factory.createStringLiteral(method)));
|
|
579
585
|
}
|
|
580
586
|
if (bodyVar) {
|
|
581
|
-
init.push(cg.createPropertyAssignment(
|
|
587
|
+
init.push(cg.createPropertyAssignment('body', typescript_1.factory.createIdentifier(bodyVar)));
|
|
582
588
|
}
|
|
583
589
|
if (header.length) {
|
|
584
|
-
init.push(typescript_1.factory.createPropertyAssignment(
|
|
585
|
-
typescript_1.factory.createSpreadAssignment(typescript_1.factory.createLogicalAnd(typescript_1.factory.createIdentifier(
|
|
590
|
+
init.push(typescript_1.factory.createPropertyAssignment('headers', typescript_1.factory.createObjectLiteralExpression([
|
|
591
|
+
typescript_1.factory.createSpreadAssignment(typescript_1.factory.createLogicalAnd(typescript_1.factory.createIdentifier('opts'), typescript_1.factory.createPropertyAccessExpression(typescript_1.factory.createIdentifier('opts'), 'headers'))),
|
|
586
592
|
...header.map((name) => cg.createPropertyAssignment(name, typescript_1.factory.createIdentifier(argNames[name]))),
|
|
587
593
|
], true)));
|
|
588
594
|
}
|
|
589
595
|
const args = [url];
|
|
590
596
|
if (init.length) {
|
|
591
597
|
const m = Object.entries(exports.contentTypes).find(([type]) => {
|
|
592
|
-
return !!lodash_1.default.get(body, [
|
|
598
|
+
return !!lodash_1.default.get(body, ['content', type]);
|
|
593
599
|
});
|
|
594
600
|
const initObj = typescript_1.factory.createObjectLiteralExpression(init, true);
|
|
595
601
|
args.push(m ? callOazapftsFunction(m[1], [initObj]) : initObj); // json, form, multipart
|
|
@@ -597,10 +603,10 @@ class ApiGenerator {
|
|
|
597
603
|
functions.push(cg.addComment(cg.createFunctionDeclaration(name, {
|
|
598
604
|
modifiers: [cg.modifier.export],
|
|
599
605
|
}, methodParams, cg.block(typescript_1.factory.createReturnStatement(this.wrapResult(callOazapftsFunction({
|
|
600
|
-
json:
|
|
601
|
-
text:
|
|
602
|
-
blob:
|
|
603
|
-
}[returnType], args, returnType ===
|
|
606
|
+
json: 'fetchJson',
|
|
607
|
+
text: 'fetchText',
|
|
608
|
+
blob: 'fetchBlob',
|
|
609
|
+
}[returnType], args, returnType === 'json' || returnType === 'blob'
|
|
604
610
|
? [
|
|
605
611
|
this.getTypeFromResponses(responses) ||
|
|
606
612
|
typescript_1.default.SyntaxKind.AnyKeyword,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/codegen/generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/codegen/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,13 +18,13 @@ const swagger_parser_1 = __importDefault(require("@apidevtools/swagger-parser"))
|
|
|
18
18
|
const generate_2 = __importDefault(require("./generate"));
|
|
19
19
|
describe("getOperationName", () => {
|
|
20
20
|
it("should use the id", () => {
|
|
21
|
-
expect(generate_1.getOperationName("GET", "/pets", "list pets")).toEqual("listPets");
|
|
21
|
+
expect((0, generate_1.getOperationName)("GET", "/pets", "list pets")).toEqual("listPets");
|
|
22
22
|
});
|
|
23
23
|
it("should use the verb and path", () => {
|
|
24
|
-
expect(generate_1.getOperationName("GET", "/pets/{color}/{status}")).toEqual("getPetsByColorAndStatus");
|
|
24
|
+
expect((0, generate_1.getOperationName)("GET", "/pets/{color}/{status}")).toEqual("getPetsByColorAndStatus");
|
|
25
25
|
});
|
|
26
26
|
it("should not use ids with special chars", () => {
|
|
27
|
-
expect(generate_1.getOperationName("GET", "/pets", "API\\PetController::listPetAction")).toEqual("getPets");
|
|
27
|
+
expect((0, generate_1.getOperationName)("GET", "/pets", "API\\PetController::listPetAction")).toEqual("getPets");
|
|
28
28
|
});
|
|
29
29
|
});
|
|
30
30
|
describe("generate", () => {
|
|
@@ -34,11 +34,11 @@ describe("generate", () => {
|
|
|
34
34
|
spec = (yield swagger_parser_1.default.bundle(__dirname + "/../../demo/petstore.json"));
|
|
35
35
|
}));
|
|
36
36
|
it("should generate an api", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
|
-
artefact = index_1.printAst(new generate_2.default(spec).generateApi());
|
|
37
|
+
artefact = (0, index_1.printAst)(new generate_2.default(spec).generateApi());
|
|
38
38
|
}));
|
|
39
39
|
/* https://github.com/cotype/build-client/issues/5 */
|
|
40
40
|
it("should generate same api a second time", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
41
|
-
expect(index_1.printAst(new generate_2.default(spec).generateApi())).toBe(artefact);
|
|
41
|
+
expect((0, index_1.printAst)(new generate_2.default(spec).generateApi())).toBe(artefact);
|
|
42
42
|
}));
|
|
43
43
|
});
|
|
44
44
|
describe("generate with blob download", () => {
|
|
@@ -47,7 +47,7 @@ describe("generate with blob download", () => {
|
|
|
47
47
|
spec = (yield swagger_parser_1.default.bundle(__dirname + "/../../demo/binary.json"));
|
|
48
48
|
}));
|
|
49
49
|
it("should generate an api using fetchBlob", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
-
const artefact = index_1.printAst(new generate_2.default(spec).generateApi());
|
|
50
|
+
const artefact = (0, index_1.printAst)(new generate_2.default(spec).generateApi());
|
|
51
51
|
const oneLine = artefact.replace(/\s+/g, " ");
|
|
52
52
|
expect(oneLine).toContain("return oazapfts.fetchBlob<{ status: 200; data: Blob; }>(`/file/${fileId}/download`, { ...opts });");
|
|
53
53
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.test.js","sourceRoot":"","sources":["../../src/codegen/generate.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,yCAAwD;AACxD,mCAAmC;AACnC,iFAAwD;AAExD,0DAAsC;AAEtC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,2BAAgB,
|
|
1
|
+
{"version":3,"file":"generate.test.js","sourceRoot":"","sources":["../../src/codegen/generate.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,yCAAwD;AACxD,mCAAmC;AACnC,iFAAwD;AAExD,0DAAsC;AAEtC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,IAAA,2BAAgB,EAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,IAAA,2BAAgB,EAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAC/D,yBAAyB,CAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CACJ,IAAA,2BAAgB,EAAC,KAAK,EAAE,OAAO,EAAE,mCAAmC,CAAC,CACtE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,IAAI,QAAgB,CAAC;IACrB,IAAI,IAAwB,CAAC;IAE7B,SAAS,CAAC,GAAS,EAAE;QACnB,IAAI,GAAG,CAAC,MAAM,wBAAa,CAAC,MAAM,CAChC,SAAS,GAAG,2BAA2B,CACxC,CAAQ,CAAC;IACZ,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAS,EAAE;QACtC,QAAQ,GAAG,IAAA,gBAAQ,EAAC,IAAI,kBAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAA,CAAC,CAAC;IAEH,qDAAqD;IACrD,EAAE,CAAC,wCAAwC,EAAE,GAAS,EAAE;QACtD,MAAM,CAAC,IAAA,gBAAQ,EAAC,IAAI,kBAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,IAAI,IAAwB,CAAC;IAE7B,SAAS,CAAC,GAAS,EAAE;QACnB,IAAI,GAAG,CAAC,MAAM,wBAAa,CAAC,MAAM,CAChC,SAAS,GAAG,yBAAyB,CACtC,CAAQ,CAAC;IACZ,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAS,EAAE;QACtD,MAAM,QAAQ,GAAG,IAAA,gBAAQ,EAAC,IAAI,kBAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CACvB,mGAAmG,CACpG,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|