@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,31 @@
|
|
|
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 TE = __importStar(require("fp-ts/TaskEither"));
|
|
28
|
+
const O = __importStar(require("fp-ts/Option"));
|
|
4
29
|
const GenerateInputSchema_1 = require("./GenerateInputSchema");
|
|
5
30
|
const GenerateInputTypes_1 = require("./GenerateInputTypes");
|
|
6
31
|
const SchemaGenerator_1 = require("../SchemaGenerator");
|
|
@@ -8,39 +33,41 @@ describe('GenerateInputSchema', () => {
|
|
|
8
33
|
it('it should process an endpoint with path and query string parameters and generate input.ts file contents', async () => {
|
|
9
34
|
const endpoint = {
|
|
10
35
|
operationId: 'getPost',
|
|
11
|
-
description:
|
|
12
|
-
summary:
|
|
13
|
-
tags:
|
|
14
|
-
parameters:
|
|
36
|
+
description: O.some('Get posts'),
|
|
37
|
+
summary: O.none,
|
|
38
|
+
tags: O.some([]),
|
|
39
|
+
parameters: O.some([
|
|
15
40
|
{
|
|
16
41
|
name: 'id',
|
|
17
42
|
in: 'path',
|
|
18
|
-
required:
|
|
19
|
-
description:
|
|
43
|
+
required: O.some(true),
|
|
44
|
+
description: O.some('The user id.'),
|
|
20
45
|
schema: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
21
|
-
type:
|
|
46
|
+
type: O.some('integer'),
|
|
22
47
|
}),
|
|
23
|
-
additionalProperties:
|
|
48
|
+
additionalProperties: O.none,
|
|
24
49
|
},
|
|
25
50
|
{
|
|
26
51
|
name: 'date',
|
|
27
52
|
in: 'query',
|
|
28
|
-
required:
|
|
29
|
-
description:
|
|
53
|
+
required: O.none,
|
|
54
|
+
description: O.some('The date of the post.'),
|
|
30
55
|
schema: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
31
|
-
type:
|
|
56
|
+
type: O.some('string'),
|
|
32
57
|
}),
|
|
33
|
-
additionalProperties:
|
|
58
|
+
additionalProperties: O.none,
|
|
34
59
|
},
|
|
35
60
|
]),
|
|
36
|
-
requestBody:
|
|
37
|
-
responses:
|
|
61
|
+
requestBody: O.none,
|
|
62
|
+
responses: O.none,
|
|
38
63
|
};
|
|
39
|
-
const inputSchema =
|
|
64
|
+
const inputSchema = E.getOrElse(() => {
|
|
40
65
|
throw new Error('Should have been right');
|
|
41
66
|
})((0, GenerateInputSchema_1.generateInputSchema)(endpoint));
|
|
42
67
|
const inputTypes = (0, GenerateInputTypes_1.generateInputTypes)(endpoint.operationId, inputSchema);
|
|
43
|
-
const generatedInputFile = await
|
|
68
|
+
const generatedInputFile = await TE.getOrElse((error) => {
|
|
69
|
+
throw new Error('Should have been right');
|
|
70
|
+
})(inputTypes)();
|
|
44
71
|
const expectedInputFile = `export interface GetPostInput {
|
|
45
72
|
/**
|
|
46
73
|
* @description The user id.
|
|
@@ -57,42 +84,44 @@ describe('GenerateInputSchema', () => {
|
|
|
57
84
|
it('it should process an endpoint with body parameters and generate input.ts file contents', async () => {
|
|
58
85
|
const endpoint = {
|
|
59
86
|
operationId: 'createPost',
|
|
60
|
-
description:
|
|
61
|
-
summary:
|
|
62
|
-
tags:
|
|
63
|
-
parameters:
|
|
64
|
-
requestBody:
|
|
87
|
+
description: O.some('Create a new post'),
|
|
88
|
+
summary: O.none,
|
|
89
|
+
tags: O.some([]),
|
|
90
|
+
parameters: O.none,
|
|
91
|
+
requestBody: O.some({
|
|
65
92
|
content: {
|
|
66
93
|
'application/json': {
|
|
67
|
-
schema:
|
|
68
|
-
type:
|
|
69
|
-
title:
|
|
70
|
-
required:
|
|
71
|
-
properties:
|
|
94
|
+
schema: O.some((0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
95
|
+
type: O.some('object'),
|
|
96
|
+
title: O.some('Post'),
|
|
97
|
+
required: O.some(['id', 'userId', 'title', 'body']),
|
|
98
|
+
properties: O.some({
|
|
72
99
|
id: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
73
|
-
type:
|
|
100
|
+
type: O.some('integer'),
|
|
74
101
|
}),
|
|
75
102
|
userId: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
76
|
-
type:
|
|
103
|
+
type: O.some('integer'),
|
|
77
104
|
}),
|
|
78
105
|
title: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
79
|
-
type:
|
|
106
|
+
type: O.some('string'),
|
|
80
107
|
}),
|
|
81
108
|
body: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
82
|
-
type:
|
|
109
|
+
type: O.some('string'),
|
|
83
110
|
}),
|
|
84
111
|
}),
|
|
85
112
|
})),
|
|
86
113
|
},
|
|
87
114
|
},
|
|
88
115
|
}),
|
|
89
|
-
responses:
|
|
116
|
+
responses: O.none,
|
|
90
117
|
};
|
|
91
|
-
const inputSchema =
|
|
118
|
+
const inputSchema = E.getOrElse(() => {
|
|
92
119
|
throw new Error('Should have been right');
|
|
93
120
|
})((0, GenerateInputSchema_1.generateInputSchema)(endpoint));
|
|
94
121
|
const inputTypes = (0, GenerateInputTypes_1.generateInputTypes)(endpoint.operationId, inputSchema);
|
|
95
|
-
const generatedInputFile = await
|
|
122
|
+
const generatedInputFile = await TE.getOrElse((error) => {
|
|
123
|
+
throw new Error('Should have been right');
|
|
124
|
+
})(inputTypes)();
|
|
96
125
|
const expectedInputFile = `export interface CreatePostInput {
|
|
97
126
|
id: number;
|
|
98
127
|
userId: number;
|
|
@@ -105,45 +134,47 @@ describe('GenerateInputSchema', () => {
|
|
|
105
134
|
it('it should process an endpoint with query string parameter array and generate input.ts file contents', async () => {
|
|
106
135
|
const endpoint = {
|
|
107
136
|
operationId: 'getPost',
|
|
108
|
-
description:
|
|
109
|
-
summary:
|
|
110
|
-
tags:
|
|
111
|
-
parameters:
|
|
137
|
+
description: O.some('Get posts'),
|
|
138
|
+
summary: O.none,
|
|
139
|
+
tags: O.some([]),
|
|
140
|
+
parameters: O.some([
|
|
112
141
|
{
|
|
113
142
|
name: 'tags',
|
|
114
143
|
in: 'query',
|
|
115
|
-
required:
|
|
116
|
-
description:
|
|
144
|
+
required: O.some(true),
|
|
145
|
+
description: O.some('tags to filter by.'),
|
|
117
146
|
schema: {
|
|
118
|
-
title:
|
|
119
|
-
type:
|
|
120
|
-
format:
|
|
147
|
+
title: O.none,
|
|
148
|
+
type: O.some('array'),
|
|
149
|
+
format: O.none,
|
|
121
150
|
items: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
|
|
122
|
-
type:
|
|
151
|
+
type: O.some('string'),
|
|
123
152
|
}),
|
|
124
|
-
properties:
|
|
125
|
-
additionalProperties:
|
|
126
|
-
required:
|
|
127
|
-
allOf:
|
|
128
|
-
anyOf:
|
|
129
|
-
oneOf:
|
|
130
|
-
not:
|
|
131
|
-
in:
|
|
132
|
-
default:
|
|
133
|
-
nullable:
|
|
134
|
-
enum:
|
|
153
|
+
properties: O.none,
|
|
154
|
+
additionalProperties: O.some(false),
|
|
155
|
+
required: O.none,
|
|
156
|
+
allOf: O.none,
|
|
157
|
+
anyOf: O.none,
|
|
158
|
+
oneOf: O.none,
|
|
159
|
+
not: O.none,
|
|
160
|
+
in: O.none,
|
|
161
|
+
default: O.none,
|
|
162
|
+
nullable: O.none,
|
|
163
|
+
enum: O.none,
|
|
135
164
|
},
|
|
136
|
-
additionalProperties:
|
|
165
|
+
additionalProperties: O.none,
|
|
137
166
|
},
|
|
138
167
|
]),
|
|
139
|
-
requestBody:
|
|
140
|
-
responses:
|
|
168
|
+
requestBody: O.none,
|
|
169
|
+
responses: O.none,
|
|
141
170
|
};
|
|
142
|
-
const inputSchema =
|
|
171
|
+
const inputSchema = E.getOrElse(() => {
|
|
143
172
|
throw new Error('Should have been right');
|
|
144
173
|
})((0, GenerateInputSchema_1.generateInputSchema)(endpoint));
|
|
145
174
|
const inputTypes = (0, GenerateInputTypes_1.generateInputTypes)(endpoint.operationId, inputSchema);
|
|
146
|
-
const generatedInputFile = await
|
|
175
|
+
const generatedInputFile = await TE.getOrElse((error) => {
|
|
176
|
+
throw new Error('Should have been right');
|
|
177
|
+
})(inputTypes)();
|
|
147
178
|
const expectedInputFile = `export interface GetPostInput {
|
|
148
179
|
/**
|
|
149
180
|
* @description tags to filter by.
|