Skip to content

Commit b474ba9

Browse files
authored
Merge pull request #824 from BitGo/DX-554-known-schemas
feat: rework metadata to use more openapi tags
2 parents 7fea66b + fbe1ec0 commit b474ba9

File tree

1 file changed

+123
-51
lines changed

1 file changed

+123
-51
lines changed

packages/openapi-generator/src/knownImports.ts

Lines changed: 123 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -139,110 +139,183 @@ export const KNOWN_IMPORTS: KnownImports = {
139139
},
140140
'io-ts-numbers': {
141141
NumberFromString: () =>
142-
E.right({ type: 'string', format: 'number', title: 'Number String' }),
142+
E.right({
143+
type: 'string',
144+
format: 'number',
145+
pattern: '^\\d+$',
146+
}),
143147
NaturalFromString: () =>
144-
E.right({ type: 'string', format: 'number', title: 'Natural Number String' }),
145-
Negative: () => E.right({ type: 'number', title: 'Negative Number' }),
148+
E.right({
149+
type: 'string',
150+
format: 'number',
151+
}),
152+
Negative: () =>
153+
E.right({
154+
type: 'number',
155+
maximum: 0,
156+
exclusiveMaximum: true,
157+
}),
146158
NegativeFromString: () =>
147-
E.right({ type: 'string', format: 'number', title: 'Negative Number String' }),
148-
NegativeInt: () => E.right({ type: 'number', title: 'Negative Integer' }),
159+
E.right({
160+
type: 'string',
161+
format: 'number',
162+
maximum: 0,
163+
exclusiveMaximum: true,
164+
}),
165+
NegativeInt: () =>
166+
E.right({
167+
type: 'number',
168+
maximum: 0,
169+
exclusiveMaximum: true,
170+
}),
149171
NegativeIntFromString: () =>
150-
E.right({ type: 'string', format: 'number', title: 'Negative Integer String' }),
151-
NonNegative: () => E.right({ type: 'number', title: 'Non-Negative Number' }),
172+
E.right({
173+
type: 'string',
174+
format: 'number',
175+
maximum: 0,
176+
exclusiveMaximum: true,
177+
}),
178+
NonNegative: () =>
179+
E.right({
180+
type: 'number',
181+
minimum: 0,
182+
}),
152183
NonNegativeFromString: () =>
153184
E.right({
154185
type: 'string',
155186
format: 'number',
156-
title: 'Non-Negative Number String',
187+
minimum: 0,
188+
}),
189+
NonNegativeInt: () =>
190+
E.right({
191+
type: 'number',
192+
minimum: 0,
157193
}),
158-
NonNegativeInt: () => E.right({ type: 'number', title: 'Non-Negative Integer' }),
159194
NonNegativeIntFromString: () =>
160195
E.right({
161196
type: 'string',
162197
format: 'number',
163-
title: 'Non-Negative Integer String',
164198
}),
165-
NonPositive: () => E.right({ type: 'number', title: 'Non-Positive Number' }),
199+
NonPositive: () =>
200+
E.right({
201+
type: 'number',
202+
maximum: 0,
203+
}),
166204
NonPositiveFromString: () =>
167205
E.right({
168206
type: 'string',
169207
format: 'number',
170-
title: 'Non-Positive Number String',
208+
maximum: 0,
209+
}),
210+
NonPositiveInt: () =>
211+
E.right({
212+
type: 'number',
213+
maximum: 0,
171214
}),
172-
NonPositiveInt: () => E.right({ type: 'number', title: 'Non-Positive Integer' }),
173215
NonPositiveIntFromString: () =>
174216
E.right({
175217
type: 'string',
176218
format: 'number',
177-
title: 'Non-Positive Integer String',
219+
maximum: 0,
220+
}),
221+
NonZero: () =>
222+
E.right({
223+
type: 'number',
178224
}),
179-
NonZero: () => E.right({ type: 'number', title: 'Non-Zero Number' }),
180225
NonZeroFromString: () =>
181-
E.right({ type: 'string', format: 'number', title: 'Non-Zero Number String' }),
182-
NonZeroInt: () => E.right({ type: 'number', title: 'Non-Zero Integer' }),
226+
E.right({
227+
type: 'string',
228+
format: 'number',
229+
}),
230+
NonZeroInt: () =>
231+
E.right({
232+
type: 'number',
233+
}),
183234
NonZeroIntFromString: () =>
184-
E.right({ type: 'string', format: 'number', title: 'Non-Zero Integer String' }),
185-
Positive: () => E.right({ type: 'number', title: 'Positive Number' }),
235+
E.right({
236+
type: 'string',
237+
format: 'number',
238+
}),
239+
Positive: () =>
240+
E.right({
241+
type: 'number',
242+
minimum: 0,
243+
exclusiveMinimum: true,
244+
}),
186245
PositiveFromString: () =>
187-
E.right({ type: 'string', format: 'number', title: 'Positive Number String' }),
188-
Zero: () => E.right({ type: 'number', title: 'Zero' }),
246+
E.right({
247+
type: 'string',
248+
format: 'number',
249+
minimum: 0,
250+
exclusiveMinimum: true,
251+
}),
252+
Zero: () =>
253+
E.right({
254+
type: 'number',
255+
}),
189256
ZeroFromString: () =>
190-
E.right({ type: 'string', format: 'number', title: 'Zero String' }),
257+
E.right({
258+
type: 'string',
259+
format: 'number',
260+
}),
191261
},
192262
'io-ts-bigint': {
193263
BigIntFromString: () =>
194-
E.right({ type: 'string', format: 'number', title: 'Big Integer String' }),
195-
NegativeBigInt: () => E.right({ type: 'number', title: 'Negative Big Integer' }),
264+
E.right({
265+
type: 'string',
266+
format: 'number',
267+
}),
268+
NegativeBigInt: () =>
269+
E.right({
270+
type: 'number',
271+
maximum: -1,
272+
}),
196273
NegativeBigIntFromString: () =>
197274
E.right({
198275
type: 'string',
199276
format: 'number',
200-
title: 'Negative Big Integer String',
277+
maximum: -1,
201278
}),
202-
NonEmptyString: () => E.right({ type: 'string', title: 'Non-Empty String' }),
203-
NonNegativeBigInt: () =>
204-
E.right({ type: 'number', title: 'Non-Negative Big Integer' }),
279+
NonEmptyString: () => E.right({ type: 'string', minLength: 1 }),
280+
NonNegativeBigInt: () => E.right({ type: 'number', minimum: 0 }),
205281
NonNegativeBigIntFromString: () =>
206282
E.right({
207283
type: 'string',
208284
format: 'number',
209-
title: 'Non-Negative Big Integer String',
285+
maximum: 0,
210286
}),
211287
NonPositiveBigInt: () =>
212-
E.right({ type: 'number', title: 'Non-Positive Big Integer' }),
288+
E.right({
289+
type: 'number',
290+
maximum: 0,
291+
}),
213292
NonPositiveBigIntFromString: () =>
214293
E.right({
215294
type: 'string',
216295
format: 'number',
217-
title: 'Non-Positive Big Integer String',
296+
maximum: 0,
218297
}),
219-
NonZeroBigInt: () => E.right({ type: 'number', title: 'Non-Zero Big Integer' }),
298+
NonZeroBigInt: () => E.right({ type: 'number' }),
220299
NonZeroBigIntFromString: () =>
221300
E.right({
222301
type: 'string',
223302
format: 'number',
224-
title: 'Non-Zero Big Integer String',
225303
}),
226-
PositiveBigInt: () => E.right({ type: 'number', title: 'Positive Big Integer' }),
304+
PositiveBigInt: () => E.right({ type: 'number', minimum: 1 }),
227305
PositiveBigIntFromString: () =>
228306
E.right({
229307
type: 'string',
230308
format: 'number',
231-
title: 'Positive Big Integer String',
309+
minimum: 1,
232310
}),
233-
ZeroBigInt: () => E.right({ type: 'number', title: 'Zero Big Integer' }),
234-
ZeroBigIntFromString: () =>
235-
E.right({ type: 'string', format: 'number', title: 'Zero Big Integer String' }),
311+
ZeroBigInt: () => E.right({ type: 'number' }),
312+
ZeroBigIntFromString: () => E.right({ type: 'string', format: 'number' }),
236313
},
237314
'io-ts-types': {
238-
NumberFromString: () =>
239-
E.right({ type: 'string', format: 'number', title: 'Number String' }),
240-
BigIntFromString: () =>
241-
E.right({ type: 'string', format: 'number', title: 'Big Integer String' }),
242-
BooleanFromNumber: () =>
243-
E.right({ type: 'number', enum: [0, 1], title: 'Boolean Number' }),
244-
BooleanFromString: () =>
245-
E.right({ type: 'string', enum: ['true', 'false'], title: 'Boolean String' }),
315+
NumberFromString: () => E.right({ type: 'string', format: 'number' }),
316+
BigIntFromString: () => E.right({ type: 'string', format: 'number' }),
317+
BooleanFromNumber: () => E.right({ type: 'number', enum: [0, 1] }),
318+
BooleanFromString: () => E.right({ type: 'string', enum: ['true', 'false'] }),
246319
DateFromISOString: () =>
247320
E.right({ type: 'string', format: 'date-time', title: 'ISO Date String' }),
248321
DateFromNumber: () =>
@@ -259,15 +332,14 @@ export const KNOWN_IMPORTS: KnownImports = {
259332
format: 'number',
260333
description: 'Number of seconds since the Unix epoch',
261334
}),
262-
IntFromString: () =>
263-
E.right({ type: 'string', format: 'integer', title: 'Integer String' }),
335+
IntFromString: () => E.right({ type: 'string', format: 'integer' }),
264336
JsonFromString: () => E.right({ type: 'string', title: 'JSON String' }),
265337
nonEmptyArray: (_, innerSchema) =>
266-
E.right({ type: 'array', items: innerSchema, title: 'Non-Empty Array' }),
267-
NonEmptyString: () => E.right({ type: 'string', title: 'Non-Empty String' }),
338+
E.right({ type: 'array', items: innerSchema, minItems: 1 }),
339+
NonEmptyString: () => E.right({ type: 'string', minLength: 1 }),
268340
readonlyNonEmptyArray: (_, innerSchema) =>
269341
E.right({ type: 'array', items: innerSchema }),
270-
UUID: () => E.right({ type: 'string', title: 'UUID' }),
342+
UUID: () => E.right({ type: 'string', title: 'uuid' }),
271343
Json: () => E.right({ type: 'any', title: 'JSON' }),
272344
JsonRecord: () => E.right({ type: 'record', codomain: { type: 'any' } }),
273345
withFallback: (_, schema, fallback) =>

0 commit comments

Comments
 (0)