@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.
Files changed (41) hide show
  1. package/dist/OpenApiCodecs.d.ts +4 -207
  2. package/dist/OpenApiCodecs.d.ts.map +1 -1
  3. package/dist/OpenApiCodecs.js +3 -3
  4. package/dist/OpenApiSchemaImporter.d.ts +2 -2
  5. package/dist/OpenApiSchemaImporter.d.ts.map +1 -1
  6. package/dist/OpenApiSchemaImporter.js +55 -33
  7. package/dist/OpenApiSchemaImporter.unit.test.js +13 -24
  8. package/dist/OpenApiSchemaTransformer.d.ts +2 -2
  9. package/dist/OpenApiSchemaTransformer.d.ts.map +1 -1
  10. package/dist/OpenApiSchemaTransformer.js +25 -2
  11. package/dist/OpenApiSchemaTransformer.unit.test.js +44 -30
  12. package/dist/OpenApiTypeDescriptors.d.ts +32 -389
  13. package/dist/OpenApiTypeDescriptors.d.ts.map +1 -1
  14. package/dist/OpenApiTypeDescriptors.js +109 -80
  15. package/dist/file-generators/GenerateHandler.d.ts +2 -2
  16. package/dist/file-generators/GenerateHandler.d.ts.map +1 -1
  17. package/dist/file-generators/GenerateHandler.js +78 -75
  18. package/dist/file-generators/GenerateHandler.unit.test.js +97 -73
  19. package/dist/file-generators/GenerateHandlerTest.d.ts +2 -2
  20. package/dist/file-generators/GenerateHandlerTest.d.ts.map +1 -1
  21. package/dist/file-generators/GenerateHandlerTest.js +76 -69
  22. package/dist/file-generators/GenerateHandlerTest.unit.test.js +230 -206
  23. package/dist/file-generators/GenerateOperationJson.d.ts +2 -2
  24. package/dist/file-generators/GenerateOperationJson.d.ts.map +1 -1
  25. package/dist/file-generators/GenerateOperationJson.js +29 -4
  26. package/dist/file-generators/GenerateOperationJson.unit.test.js +49 -25
  27. package/dist/file-generators/SchemaGenerator.d.ts.map +1 -1
  28. package/dist/file-generators/SchemaGenerator.js +37 -14
  29. package/dist/file-generators/types/GenerateInputSchema.d.ts +2 -2
  30. package/dist/file-generators/types/GenerateInputSchema.d.ts.map +1 -1
  31. package/dist/file-generators/types/GenerateInputSchema.js +95 -88
  32. package/dist/file-generators/types/GenerateInputSchema.test.js +91 -60
  33. package/dist/file-generators/types/GenerateInputType.test.js +169 -143
  34. package/dist/file-generators/types/GenerateInputTypes.d.ts +2 -2
  35. package/dist/file-generators/types/GenerateInputTypes.d.ts.map +1 -1
  36. package/dist/file-generators/types/GenerateInputTypes.js +28 -7
  37. package/dist/file-generators/types/GenerateOutput.d.ts +6 -4
  38. package/dist/file-generators/types/GenerateOutput.d.ts.map +1 -1
  39. package/dist/file-generators/types/GenerateOutput.js +57 -46
  40. package/dist/file-generators/types/GenerateOutput.test.js +62 -35
  41. 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 effect_1 = require("effect");
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: effect_1.Option.some('Get posts'),
12
- summary: effect_1.Option.none(),
13
- tags: effect_1.Option.some([]),
14
- parameters: effect_1.Option.some([
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: effect_1.Option.some(true),
19
- description: effect_1.Option.some('The user id.'),
43
+ required: O.some(true),
44
+ description: O.some('The user id.'),
20
45
  schema: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
21
- type: effect_1.Option.some('integer'),
46
+ type: O.some('integer'),
22
47
  }),
23
- additionalProperties: effect_1.Option.none(),
48
+ additionalProperties: O.none,
24
49
  },
25
50
  {
26
51
  name: 'date',
27
52
  in: 'query',
28
- required: effect_1.Option.none(),
29
- description: effect_1.Option.some('The date of the post.'),
53
+ required: O.none,
54
+ description: O.some('The date of the post.'),
30
55
  schema: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
31
- type: effect_1.Option.some('string'),
56
+ type: O.some('string'),
32
57
  }),
33
- additionalProperties: effect_1.Option.none(),
58
+ additionalProperties: O.none,
34
59
  },
35
60
  ]),
36
- requestBody: effect_1.Option.none(),
37
- responses: effect_1.Option.none(),
61
+ requestBody: O.none,
62
+ responses: O.none,
38
63
  };
39
- const inputSchema = effect_1.Either.getOrElse(() => {
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 effect_1.Effect.runPromise(inputTypes);
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: effect_1.Option.some('Create a new post'),
61
- summary: effect_1.Option.none(),
62
- tags: effect_1.Option.some([]),
63
- parameters: effect_1.Option.none(),
64
- requestBody: effect_1.Option.some({
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: effect_1.Option.some((0, SchemaGenerator_1.generateNonArraySchemaObject)({
68
- type: effect_1.Option.some('object'),
69
- title: effect_1.Option.some('Post'),
70
- required: effect_1.Option.some(['id', 'userId', 'title', 'body']),
71
- properties: effect_1.Option.some({
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: effect_1.Option.some('integer'),
100
+ type: O.some('integer'),
74
101
  }),
75
102
  userId: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
76
- type: effect_1.Option.some('integer'),
103
+ type: O.some('integer'),
77
104
  }),
78
105
  title: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
79
- type: effect_1.Option.some('string'),
106
+ type: O.some('string'),
80
107
  }),
81
108
  body: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
82
- type: effect_1.Option.some('string'),
109
+ type: O.some('string'),
83
110
  }),
84
111
  }),
85
112
  })),
86
113
  },
87
114
  },
88
115
  }),
89
- responses: effect_1.Option.none(),
116
+ responses: O.none,
90
117
  };
91
- const inputSchema = effect_1.Either.getOrElse(() => {
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 effect_1.Effect.runPromise(inputTypes);
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: effect_1.Option.some('Get posts'),
109
- summary: effect_1.Option.none(),
110
- tags: effect_1.Option.some([]),
111
- parameters: effect_1.Option.some([
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: effect_1.Option.some(true),
116
- description: effect_1.Option.some('tags to filter by.'),
144
+ required: O.some(true),
145
+ description: O.some('tags to filter by.'),
117
146
  schema: {
118
- title: effect_1.Option.none(),
119
- type: effect_1.Option.some('array'),
120
- format: effect_1.Option.none(),
147
+ title: O.none,
148
+ type: O.some('array'),
149
+ format: O.none,
121
150
  items: (0, SchemaGenerator_1.generateNonArraySchemaObject)({
122
- type: effect_1.Option.some('string'),
151
+ type: O.some('string'),
123
152
  }),
124
- properties: effect_1.Option.none(),
125
- additionalProperties: effect_1.Option.some(false),
126
- required: effect_1.Option.none(),
127
- allOf: effect_1.Option.none(),
128
- anyOf: effect_1.Option.none(),
129
- oneOf: effect_1.Option.none(),
130
- not: effect_1.Option.none(),
131
- in: effect_1.Option.none(),
132
- default: effect_1.Option.none(),
133
- nullable: effect_1.Option.none(),
134
- enum: effect_1.Option.none(),
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: effect_1.Option.none(),
165
+ additionalProperties: O.none,
137
166
  },
138
167
  ]),
139
- requestBody: effect_1.Option.none(),
140
- responses: effect_1.Option.none(),
168
+ requestBody: O.none,
169
+ responses: O.none,
141
170
  };
142
- const inputSchema = effect_1.Either.getOrElse(() => {
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 effect_1.Effect.runPromise(inputTypes);
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.