@trayio/tray-openapi 5.35.0-unstable.fd7158a → 6.0.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/dist/OpenApiCodecs.d.ts +4 -207
- package/dist/OpenApiCodecs.d.ts.map +1 -1
- package/dist/OpenApiCodecs.js +3 -3
- package/dist/OpenApiSchemaImporter.d.ts +2 -2
- package/dist/OpenApiSchemaImporter.d.ts.map +1 -1
- package/dist/OpenApiSchemaImporter.js +55 -33
- package/dist/OpenApiSchemaImporter.unit.test.js +13 -24
- package/dist/OpenApiSchemaTransformer.d.ts +2 -2
- package/dist/OpenApiSchemaTransformer.d.ts.map +1 -1
- package/dist/OpenApiSchemaTransformer.js +25 -2
- package/dist/OpenApiSchemaTransformer.unit.test.js +44 -30
- package/dist/OpenApiTypeDescriptors.d.ts +32 -389
- package/dist/OpenApiTypeDescriptors.d.ts.map +1 -1
- package/dist/OpenApiTypeDescriptors.js +109 -80
- package/dist/file-generators/GenerateHandler.d.ts +2 -2
- package/dist/file-generators/GenerateHandler.d.ts.map +1 -1
- package/dist/file-generators/GenerateHandler.js +78 -75
- package/dist/file-generators/GenerateHandler.unit.test.js +97 -73
- package/dist/file-generators/GenerateHandlerTest.d.ts +2 -2
- package/dist/file-generators/GenerateHandlerTest.d.ts.map +1 -1
- package/dist/file-generators/GenerateHandlerTest.js +76 -69
- package/dist/file-generators/GenerateHandlerTest.unit.test.js +230 -206
- package/dist/file-generators/GenerateOperationJson.d.ts +2 -2
- package/dist/file-generators/GenerateOperationJson.d.ts.map +1 -1
- package/dist/file-generators/GenerateOperationJson.js +29 -4
- package/dist/file-generators/GenerateOperationJson.unit.test.js +49 -25
- package/dist/file-generators/SchemaGenerator.d.ts.map +1 -1
- package/dist/file-generators/SchemaGenerator.js +37 -14
- package/dist/file-generators/types/GenerateInputSchema.d.ts +2 -2
- package/dist/file-generators/types/GenerateInputSchema.d.ts.map +1 -1
- package/dist/file-generators/types/GenerateInputSchema.js +95 -88
- package/dist/file-generators/types/GenerateInputSchema.test.js +91 -60
- package/dist/file-generators/types/GenerateInputType.test.js +169 -143
- package/dist/file-generators/types/GenerateInputTypes.d.ts +2 -2
- package/dist/file-generators/types/GenerateInputTypes.d.ts.map +1 -1
- package/dist/file-generators/types/GenerateInputTypes.js +28 -7
- package/dist/file-generators/types/GenerateOutput.d.ts +6 -4
- package/dist/file-generators/types/GenerateOutput.d.ts.map +1 -1
- package/dist/file-generators/types/GenerateOutput.js +57 -46
- package/dist/file-generators/types/GenerateOutput.test.js +62 -35
- package/package.json +8 -6
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
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);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
26
|
+
const E = __importStar(require("fp-ts/Either"));
|
|
27
|
+
const O = __importStar(require("fp-ts/Option"));
|
|
4
28
|
const GenerateHandler_1 = require("./GenerateHandler");
|
|
5
29
|
const SchemaGenerator_1 = require("./SchemaGenerator");
|
|
6
30
|
const getGenerateHandlerInput = (input) => ({
|
|
@@ -17,7 +41,7 @@ describe('GenerateHandler', () => {
|
|
|
17
41
|
it('it should generate a handler with no inputs', () => {
|
|
18
42
|
const payload = getGenerateHandlerInput({});
|
|
19
43
|
const generatedHandler = (0, GenerateHandler_1.generateHandler)(payload);
|
|
20
|
-
expect(
|
|
44
|
+
expect(E.right(`import { OperationHandlerSetup } from "@trayio/cdk-dsl/connector/operation/OperationHandlerSetup";
|
|
21
45
|
import { OpenApiTestAuth } from "../OpenApiTestAuth";
|
|
22
46
|
import { GetPhotoInput } from "./input";
|
|
23
47
|
import { GetPhotoOutput } from "./output";
|
|
@@ -38,22 +62,22 @@ import { globalConfigHttp } from "../GlobalConfig";
|
|
|
38
62
|
});
|
|
39
63
|
it('it should generate a handler with a path parameter', () => {
|
|
40
64
|
const input = (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
41
|
-
type:
|
|
42
|
-
properties:
|
|
65
|
+
type: O.some('object'),
|
|
66
|
+
properties: O.some({
|
|
43
67
|
photoId: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
44
|
-
type:
|
|
45
|
-
in:
|
|
68
|
+
type: O.some('string'),
|
|
69
|
+
in: O.some('path'),
|
|
46
70
|
}),
|
|
47
71
|
}),
|
|
48
|
-
required:
|
|
49
|
-
additionalProperties:
|
|
72
|
+
required: O.some(['photoId']),
|
|
73
|
+
additionalProperties: O.some(false),
|
|
50
74
|
});
|
|
51
75
|
const payload = getGenerateHandlerInput({
|
|
52
76
|
input,
|
|
53
77
|
httpPath: '/photos/{photoId}',
|
|
54
78
|
});
|
|
55
79
|
const generatedHandler = (0, GenerateHandler_1.generateHandler)(payload);
|
|
56
|
-
expect(
|
|
80
|
+
expect(E.right(`import { OperationHandlerSetup } from "@trayio/cdk-dsl/connector/operation/OperationHandlerSetup";
|
|
57
81
|
import { OpenApiTestAuth } from "../OpenApiTestAuth";
|
|
58
82
|
import { GetPhotoInput } from "./input";
|
|
59
83
|
import { GetPhotoOutput } from "./output";
|
|
@@ -74,19 +98,19 @@ import { globalConfigHttp } from "../GlobalConfig";
|
|
|
74
98
|
});
|
|
75
99
|
it('it should generate a handler with a body input as json', () => {
|
|
76
100
|
const input = (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
77
|
-
type:
|
|
78
|
-
properties:
|
|
101
|
+
type: O.some('object'),
|
|
102
|
+
properties: O.some({
|
|
79
103
|
photoId: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
80
|
-
type:
|
|
81
|
-
in:
|
|
104
|
+
type: O.some('string'),
|
|
105
|
+
in: O.some('body'),
|
|
82
106
|
}),
|
|
83
107
|
}),
|
|
84
|
-
required:
|
|
85
|
-
additionalProperties:
|
|
108
|
+
required: O.some(['photoId']),
|
|
109
|
+
additionalProperties: O.some(false),
|
|
86
110
|
});
|
|
87
111
|
const payload = getGenerateHandlerInput({ input });
|
|
88
112
|
const generatedHandler = (0, GenerateHandler_1.generateHandler)(payload);
|
|
89
|
-
expect(
|
|
113
|
+
expect(E.right(`import { OperationHandlerSetup } from "@trayio/cdk-dsl/connector/operation/OperationHandlerSetup";
|
|
90
114
|
import { OpenApiTestAuth } from "../OpenApiTestAuth";
|
|
91
115
|
import { GetPhotoInput } from "./input";
|
|
92
116
|
import { GetPhotoOutput } from "./output";
|
|
@@ -107,19 +131,19 @@ import { globalConfigHttp } from "../GlobalConfig";
|
|
|
107
131
|
});
|
|
108
132
|
it('it should generate a handler with a query string input', () => {
|
|
109
133
|
const input = (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
110
|
-
type:
|
|
111
|
-
properties:
|
|
134
|
+
type: O.some('object'),
|
|
135
|
+
properties: O.some({
|
|
112
136
|
id: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
113
|
-
type:
|
|
114
|
-
in:
|
|
137
|
+
type: O.some('string'),
|
|
138
|
+
in: O.some('query'),
|
|
115
139
|
}),
|
|
116
140
|
}),
|
|
117
|
-
required:
|
|
118
|
-
additionalProperties:
|
|
141
|
+
required: O.some(['id']),
|
|
142
|
+
additionalProperties: O.some(false),
|
|
119
143
|
});
|
|
120
144
|
const payload = getGenerateHandlerInput({ input });
|
|
121
145
|
const generatedHandler = (0, GenerateHandler_1.generateHandler)(payload);
|
|
122
|
-
expect(
|
|
146
|
+
expect(E.right(`import { OperationHandlerSetup } from "@trayio/cdk-dsl/connector/operation/OperationHandlerSetup";
|
|
123
147
|
import { OpenApiTestAuth } from "../OpenApiTestAuth";
|
|
124
148
|
import { GetPhotoInput } from "./input";
|
|
125
149
|
import { GetPhotoOutput } from "./output";
|
|
@@ -140,19 +164,19 @@ import { globalConfigHttp } from "../GlobalConfig";
|
|
|
140
164
|
});
|
|
141
165
|
it('it should generate a handler with a header input', () => {
|
|
142
166
|
const input = (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
143
|
-
type:
|
|
144
|
-
properties:
|
|
167
|
+
type: O.some('object'),
|
|
168
|
+
properties: O.some({
|
|
145
169
|
'Content-Type': (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
146
|
-
type:
|
|
147
|
-
in:
|
|
170
|
+
type: O.some('string'),
|
|
171
|
+
in: O.some('header'),
|
|
148
172
|
}),
|
|
149
173
|
}),
|
|
150
|
-
required:
|
|
151
|
-
additionalProperties:
|
|
174
|
+
required: O.some(['Content-Type']),
|
|
175
|
+
additionalProperties: O.some(false),
|
|
152
176
|
});
|
|
153
177
|
const payload = getGenerateHandlerInput({ input });
|
|
154
178
|
const generatedHandler = (0, GenerateHandler_1.generateHandler)(payload);
|
|
155
|
-
expect(
|
|
179
|
+
expect(E.right(`import { OperationHandlerSetup } from "@trayio/cdk-dsl/connector/operation/OperationHandlerSetup";
|
|
156
180
|
import { OpenApiTestAuth } from "../OpenApiTestAuth";
|
|
157
181
|
import { GetPhotoInput } from "./input";
|
|
158
182
|
import { GetPhotoOutput } from "./output";
|
|
@@ -173,18 +197,18 @@ import { globalConfigHttp } from "../GlobalConfig";
|
|
|
173
197
|
});
|
|
174
198
|
it('it should generate a handler and transform number type to string for input', () => {
|
|
175
199
|
const input = (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
176
|
-
type:
|
|
177
|
-
properties:
|
|
200
|
+
type: O.some('object'),
|
|
201
|
+
properties: O.some({
|
|
178
202
|
'Content-Type': (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
179
|
-
type:
|
|
180
|
-
in:
|
|
203
|
+
type: O.some('integer'),
|
|
204
|
+
in: O.some('header'),
|
|
181
205
|
}),
|
|
182
206
|
}),
|
|
183
|
-
additionalProperties:
|
|
207
|
+
additionalProperties: O.some(false),
|
|
184
208
|
});
|
|
185
209
|
const payload = getGenerateHandlerInput({ input });
|
|
186
210
|
const generatedHandler = (0, GenerateHandler_1.generateHandler)(payload);
|
|
187
|
-
expect(
|
|
211
|
+
expect(E.right(`import { OperationHandlerSetup } from "@trayio/cdk-dsl/connector/operation/OperationHandlerSetup";
|
|
188
212
|
import { OpenApiTestAuth } from "../OpenApiTestAuth";
|
|
189
213
|
import { GetPhotoInput } from "./input";
|
|
190
214
|
import { GetPhotoOutput } from "./output";
|
|
@@ -205,30 +229,30 @@ import { globalConfigHttp } from "../GlobalConfig";
|
|
|
205
229
|
});
|
|
206
230
|
it('it should generate a handler with a query string and path param input', () => {
|
|
207
231
|
const input = (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
208
|
-
type:
|
|
209
|
-
properties:
|
|
232
|
+
type: O.some('object'),
|
|
233
|
+
properties: O.some({
|
|
210
234
|
id: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
211
|
-
type:
|
|
212
|
-
in:
|
|
235
|
+
type: O.some('string'),
|
|
236
|
+
in: O.some('query'),
|
|
213
237
|
}),
|
|
214
238
|
photoId: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
215
|
-
type:
|
|
216
|
-
in:
|
|
239
|
+
type: O.some('string'),
|
|
240
|
+
in: O.some('path'),
|
|
217
241
|
}),
|
|
218
242
|
commentId: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
219
|
-
type:
|
|
220
|
-
in:
|
|
243
|
+
type: O.some('string'),
|
|
244
|
+
in: O.some('path'),
|
|
221
245
|
}),
|
|
222
246
|
}),
|
|
223
|
-
required:
|
|
224
|
-
additionalProperties:
|
|
247
|
+
required: O.some(['photoId']),
|
|
248
|
+
additionalProperties: O.some(false),
|
|
225
249
|
});
|
|
226
250
|
const payload = getGenerateHandlerInput({
|
|
227
251
|
input,
|
|
228
252
|
httpPath: '/photos/{photoId}/{commentId}',
|
|
229
253
|
});
|
|
230
254
|
const generatedHandler = (0, GenerateHandler_1.generateHandler)(payload);
|
|
231
|
-
expect(
|
|
255
|
+
expect(E.right(`import { OperationHandlerSetup } from "@trayio/cdk-dsl/connector/operation/OperationHandlerSetup";
|
|
232
256
|
import { OpenApiTestAuth } from "../OpenApiTestAuth";
|
|
233
257
|
import { GetPhotoInput } from "./input";
|
|
234
258
|
import { GetPhotoOutput } from "./output";
|
|
@@ -249,23 +273,23 @@ import { globalConfigHttp } from "../GlobalConfig";
|
|
|
249
273
|
});
|
|
250
274
|
it('it should generate a handler with a query string and body param input', () => {
|
|
251
275
|
const input = (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
252
|
-
type:
|
|
253
|
-
properties:
|
|
276
|
+
type: O.some('object'),
|
|
277
|
+
properties: O.some({
|
|
254
278
|
id: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
255
|
-
type:
|
|
256
|
-
in:
|
|
279
|
+
type: O.some('string'),
|
|
280
|
+
in: O.some('query'),
|
|
257
281
|
}),
|
|
258
282
|
photoId: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
259
|
-
type:
|
|
260
|
-
in:
|
|
283
|
+
type: O.some('string'),
|
|
284
|
+
in: O.some('body'),
|
|
261
285
|
}),
|
|
262
286
|
}),
|
|
263
|
-
required:
|
|
264
|
-
additionalProperties:
|
|
287
|
+
required: O.some(['id', 'photoId']),
|
|
288
|
+
additionalProperties: O.some(false),
|
|
265
289
|
});
|
|
266
290
|
const payload = getGenerateHandlerInput({ input });
|
|
267
291
|
const generatedHandler = (0, GenerateHandler_1.generateHandler)(payload);
|
|
268
|
-
expect(
|
|
292
|
+
expect(E.right(`import { OperationHandlerSetup } from "@trayio/cdk-dsl/connector/operation/OperationHandlerSetup";
|
|
269
293
|
import { OpenApiTestAuth } from "../OpenApiTestAuth";
|
|
270
294
|
import { GetPhotoInput } from "./input";
|
|
271
295
|
import { GetPhotoOutput } from "./output";
|
|
@@ -286,23 +310,23 @@ import { globalConfigHttp } from "../GlobalConfig";
|
|
|
286
310
|
});
|
|
287
311
|
it('it should generate a handler with an optional query string and body param input', () => {
|
|
288
312
|
const input = (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
289
|
-
type:
|
|
290
|
-
properties:
|
|
313
|
+
type: O.some('object'),
|
|
314
|
+
properties: O.some({
|
|
291
315
|
id: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
292
|
-
type:
|
|
293
|
-
in:
|
|
316
|
+
type: O.some('string'),
|
|
317
|
+
in: O.some('query'),
|
|
294
318
|
}),
|
|
295
319
|
photoId: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
296
|
-
type:
|
|
297
|
-
in:
|
|
320
|
+
type: O.some('string'),
|
|
321
|
+
in: O.some('body'),
|
|
298
322
|
}),
|
|
299
323
|
}),
|
|
300
|
-
required:
|
|
301
|
-
additionalProperties:
|
|
324
|
+
required: O.some(['photoId']),
|
|
325
|
+
additionalProperties: O.some(false),
|
|
302
326
|
});
|
|
303
327
|
const payload = getGenerateHandlerInput({ input });
|
|
304
328
|
const generatedHandler = (0, GenerateHandler_1.generateHandler)(payload);
|
|
305
|
-
expect(
|
|
329
|
+
expect(E.right(`import { OperationHandlerSetup } from "@trayio/cdk-dsl/connector/operation/OperationHandlerSetup";
|
|
306
330
|
import { OpenApiTestAuth } from "../OpenApiTestAuth";
|
|
307
331
|
import { GetPhotoInput } from "./input";
|
|
308
332
|
import { GetPhotoOutput } from "./output";
|
|
@@ -323,20 +347,20 @@ import { globalConfigHttp } from "../GlobalConfig";
|
|
|
323
347
|
});
|
|
324
348
|
it('it should generate a handler with a nullable body input', () => {
|
|
325
349
|
const input = (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
326
|
-
type:
|
|
327
|
-
properties:
|
|
350
|
+
type: O.some('object'),
|
|
351
|
+
properties: O.some({
|
|
328
352
|
photoId: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
329
|
-
type:
|
|
330
|
-
in:
|
|
331
|
-
nullable:
|
|
353
|
+
type: O.some('string'),
|
|
354
|
+
in: O.some('body'),
|
|
355
|
+
nullable: O.some(true),
|
|
332
356
|
}),
|
|
333
357
|
}),
|
|
334
|
-
required:
|
|
335
|
-
additionalProperties:
|
|
358
|
+
required: O.none,
|
|
359
|
+
additionalProperties: O.some(false),
|
|
336
360
|
});
|
|
337
361
|
const payload = getGenerateHandlerInput({ input });
|
|
338
362
|
const generatedHandler = (0, GenerateHandler_1.generateHandler)(payload);
|
|
339
|
-
expect(
|
|
363
|
+
expect(E.right(`import { OperationHandlerSetup } from "@trayio/cdk-dsl/connector/operation/OperationHandlerSetup";
|
|
340
364
|
import { castUndefinedPropertyToNull } from "@trayio/commons/dynamictype/DynamicType";
|
|
341
365
|
import { OpenApiTestAuth } from "../OpenApiTestAuth";
|
|
342
366
|
import { GetPhotoInput } from "./input";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as E from 'fp-ts/Either';
|
|
2
2
|
import { SchemaObject } from '../OpenApiTypeDescriptors';
|
|
3
3
|
export type GenerateHandlerTestInput = {
|
|
4
4
|
operationNameCamelCase: string;
|
|
5
5
|
input: SchemaObject;
|
|
6
6
|
output: SchemaObject;
|
|
7
7
|
};
|
|
8
|
-
export declare const generateHandlerTest: ({ operationNameCamelCase, input, output, }: GenerateHandlerTestInput) =>
|
|
8
|
+
export declare const generateHandlerTest: ({ operationNameCamelCase, input, output, }: GenerateHandlerTestInput) => E.Either<Error, string>;
|
|
9
9
|
//# sourceMappingURL=GenerateHandlerTest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenerateHandlerTest.d.ts","sourceRoot":"","sources":["../../src/file-generators/GenerateHandlerTest.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"GenerateHandlerTest.d.ts","sourceRoot":"","sources":["../../src/file-generators/GenerateHandlerTest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAqB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE5E,MAAM,MAAM,wBAAwB,GAAG;IACtC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;CACrB,CAAC;AA8FF,eAAO,MAAM,mBAAmB,+CAI7B,wBAAwB,KAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAqClD,CAAC"}
|
|
@@ -1,66 +1,82 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
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);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.generateHandlerTest = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
27
|
+
const E = __importStar(require("fp-ts/Either"));
|
|
28
|
+
const O = __importStar(require("fp-ts/Option"));
|
|
29
|
+
const function_1 = require("fp-ts/function");
|
|
30
|
+
const getDefaultValue = (prop) => (0, function_1.pipe)(prop.default, O.fold(() => O.fold(() => {
|
|
31
|
+
if (O.isSome(prop.oneOf)) {
|
|
32
|
+
const oneOfProp = O.getOrElse(() => [])(prop.oneOf);
|
|
33
|
+
if (oneOfProp.length > 0) {
|
|
34
|
+
return getDefaultValue(oneOfProp[0]);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return `'test_value'`;
|
|
38
|
+
}, (type) => {
|
|
39
|
+
switch (type) {
|
|
40
|
+
case 'string':
|
|
41
|
+
const isEnum = O.isSome(prop.enum);
|
|
42
|
+
if (isEnum) {
|
|
43
|
+
const enumValues = O.getOrElse(() => ['test'])(prop.enum);
|
|
44
|
+
if (enumValues.length > 0) {
|
|
45
|
+
return `'${enumValues[0]}'`;
|
|
12
46
|
}
|
|
13
47
|
}
|
|
48
|
+
return `'test'`;
|
|
49
|
+
case 'number':
|
|
50
|
+
case 'integer':
|
|
51
|
+
return 2;
|
|
52
|
+
case 'boolean':
|
|
53
|
+
return true;
|
|
54
|
+
case 'array':
|
|
55
|
+
const arrayProp = prop;
|
|
56
|
+
return arrayProp.items
|
|
57
|
+
? `[${getDefaultValue(arrayProp.items)}]`
|
|
58
|
+
: '[]';
|
|
59
|
+
case 'object':
|
|
60
|
+
return O.fold(() => `{}`, (properties) => handleInput(properties))(prop.properties);
|
|
61
|
+
default:
|
|
14
62
|
return `'test_value'`;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (isEnum) {
|
|
21
|
-
const enumValues = effect_1.Option.getOrElse(prop.enum, () => ['test']);
|
|
22
|
-
if (enumValues.length > 0) {
|
|
23
|
-
return `'${enumValues[0]}'`;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return `'test'`;
|
|
27
|
-
case 'number':
|
|
28
|
-
case 'integer':
|
|
29
|
-
return 2;
|
|
30
|
-
case 'boolean':
|
|
31
|
-
return true;
|
|
32
|
-
case 'array':
|
|
33
|
-
const arrayProp = prop;
|
|
34
|
-
return arrayProp.items
|
|
35
|
-
? `[${getDefaultValue(arrayProp.items)}]`
|
|
36
|
-
: '[]';
|
|
37
|
-
case 'object':
|
|
38
|
-
return effect_1.Option.match(prop.properties, {
|
|
39
|
-
onNone: () => `{}`,
|
|
40
|
-
onSome: (properties) => handleInput(properties),
|
|
41
|
-
});
|
|
42
|
-
default:
|
|
43
|
-
return `'test_value'`;
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
}),
|
|
47
|
-
onSome: (defaultEntry) => {
|
|
48
|
-
if (Array.isArray(defaultEntry)) {
|
|
49
|
-
if (defaultEntry.length === 0) {
|
|
50
|
-
return getDefaultValue({ ...prop, default: effect_1.Option.none() });
|
|
51
|
-
}
|
|
52
|
-
return `'${defaultEntry[0]}'`;
|
|
53
|
-
}
|
|
54
|
-
switch (typeof defaultEntry) {
|
|
55
|
-
case 'string':
|
|
56
|
-
return `'${defaultEntry}'`;
|
|
57
|
-
case 'number':
|
|
58
|
-
case 'boolean':
|
|
59
|
-
return defaultEntry;
|
|
60
|
-
default:
|
|
61
|
-
return `'test_value'`;
|
|
63
|
+
}
|
|
64
|
+
})(prop.type), (defaultEntry) => {
|
|
65
|
+
if (Array.isArray(defaultEntry)) {
|
|
66
|
+
if (defaultEntry.length === 0) {
|
|
67
|
+
return getDefaultValue({ ...prop, default: O.none });
|
|
62
68
|
}
|
|
63
|
-
|
|
69
|
+
return `'${defaultEntry[0]}'`;
|
|
70
|
+
}
|
|
71
|
+
switch (typeof defaultEntry) {
|
|
72
|
+
case 'string':
|
|
73
|
+
return `'${defaultEntry}'`;
|
|
74
|
+
case 'number':
|
|
75
|
+
case 'boolean':
|
|
76
|
+
return defaultEntry;
|
|
77
|
+
default:
|
|
78
|
+
return `'test_value'`;
|
|
79
|
+
}
|
|
64
80
|
}));
|
|
65
81
|
// TODO: make handleInput and handleOutput accept an option and do the fold inside, will make the code cleaner in the template and switch case
|
|
66
82
|
const handleInput = (inputs) => {
|
|
@@ -71,8 +87,7 @@ const handleOutput = (outputs) => {
|
|
|
71
87
|
const expectations = Object.entries(outputs).map(([key, prop]) => `expect(outputValue['${key}']).toEqual(${getDefaultValue(prop)});`);
|
|
72
88
|
return expectations.join('\n');
|
|
73
89
|
};
|
|
74
|
-
const generateHandlerTest = ({ operationNameCamelCase, input, output, }) =>
|
|
75
|
-
try: () => `import { OperationHandlerTestSetup } from '@trayio/cdk-dsl/connector/operation/OperationHandlerTest';
|
|
90
|
+
const generateHandlerTest = ({ operationNameCamelCase, input, output, }) => E.tryCatch(() => `import { OperationHandlerTestSetup } from '@trayio/cdk-dsl/connector/operation/OperationHandlerTest';
|
|
76
91
|
import { OperationHandlerResult } from '@trayio/cdk-dsl/connector/operation/OperationHandler';
|
|
77
92
|
import { ${operationNameCamelCase}Handler } from './handler';
|
|
78
93
|
import '@trayio/cdk-runtime/connector/operation/OperationHandlerTestRunner';
|
|
@@ -84,27 +99,19 @@ const generateHandlerTest = ({ operationNameCamelCase, input, output, }) => effe
|
|
|
84
99
|
.testCase('should ${operationNameCamelCase}', (testCase) =>
|
|
85
100
|
testCase
|
|
86
101
|
.givenNothing()
|
|
87
|
-
.when(() => (${
|
|
88
|
-
onNone: () => `{}`,
|
|
89
|
-
onSome: (properties) => handleInput(properties),
|
|
90
|
-
})}
|
|
102
|
+
.when(() => (${O.fold(() => `{}`, (properties) => handleInput(properties))(input.properties)}
|
|
91
103
|
))
|
|
92
104
|
.then(({ output }) => {
|
|
93
105
|
// console.log(output);
|
|
94
106
|
const outputValue =
|
|
95
107
|
OperationHandlerResult.getSuccessfulValueOrFail(output);
|
|
96
|
-
${
|
|
97
|
-
onNone: () => `{}`,
|
|
98
|
-
onSome: (properties) => handleOutput(properties),
|
|
99
|
-
})}
|
|
108
|
+
${O.fold(() => `{}`, (properties) => handleOutput(properties))(output.properties)}
|
|
100
109
|
|
|
101
110
|
})
|
|
102
111
|
.finallyDoNothing()
|
|
103
112
|
)
|
|
104
113
|
.nothingAfterAll()
|
|
105
|
-
);`,
|
|
106
|
-
catch: (e) => new Error(`Failed to generate handler test: ${e}`),
|
|
107
|
-
});
|
|
114
|
+
);`, (e) => new Error(`Failed to generate handler test: ${e}`));
|
|
108
115
|
exports.generateHandlerTest = generateHandlerTest;
|
|
109
116
|
// ${handleOutput(output.properties || {})}
|
|
110
117
|
// .when(() => (${O.fold(input.properties ? handleInput(input.properties) : `{}`
|