@f3liz/rescript-autogen-openapi 0.5.3 → 0.5.4
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.
|
@@ -10,14 +10,6 @@ import * as Primitive_string from "@rescript/runtime/lib/es6/Primitive_string.js
|
|
|
10
10
|
import * as GenerationContext from "../types/GenerationContext.mjs";
|
|
11
11
|
import * as ReferenceResolver from "../core/ReferenceResolver.mjs";
|
|
12
12
|
|
|
13
|
-
function cannotSetDefault(schemaCode) {
|
|
14
|
-
if (schemaCode.includes("S.dict(")) {
|
|
15
|
-
return true;
|
|
16
|
-
} else {
|
|
17
|
-
return schemaCode.includes("S.object(");
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
13
|
function nullableToOption(schemaCode) {
|
|
22
14
|
if (schemaCode.startsWith("S.nullableAsOption(")) {
|
|
23
15
|
return "S.option(" + schemaCode.slice("S.nullableAsOption(".length);
|
|
@@ -125,15 +117,9 @@ function generateSchemaWithContext(ctx, depthOpt, extractedTypeMap, irType) {
|
|
|
125
117
|
if (param[2]) {
|
|
126
118
|
return ` ` + camelName + `: s.field("` + name + `", ` + schemaCode + `),`;
|
|
127
119
|
} else if (alreadyNullable) {
|
|
128
|
-
|
|
129
|
-
return ` ` + camelName + `: s.field("` + name + `", ` + nullableToOption(schemaCode) + `),`;
|
|
130
|
-
} else {
|
|
131
|
-
return ` ` + camelName + `: s.fieldOr("` + name + `", ` + schemaCode + `, None),`;
|
|
132
|
-
}
|
|
133
|
-
} else if (cannotSetDefault(schemaCode)) {
|
|
134
|
-
return ` ` + camelName + `: s.field("` + name + `", S.option(` + schemaCode + `)),`;
|
|
120
|
+
return ` ` + camelName + `: s.field("` + name + `", ` + nullableToOption(schemaCode) + `),`;
|
|
135
121
|
} else {
|
|
136
|
-
return ` ` + camelName + `: s.
|
|
122
|
+
return ` ` + camelName + `: s.field("` + name + `", S.option(` + schemaCode + `)),`;
|
|
137
123
|
}
|
|
138
124
|
}).join("\n");
|
|
139
125
|
return `S.object(s => {\n` + fields + `\n })`;
|
|
@@ -321,15 +307,9 @@ function generateSchemaWithContext(ctx, depthOpt, extractedTypeMap, irType) {
|
|
|
321
307
|
if (param[2]) {
|
|
322
308
|
return ` ` + camelName + `: s.field("` + name + `", ` + schemaCode + `),`;
|
|
323
309
|
} else if (alreadyNullable) {
|
|
324
|
-
|
|
325
|
-
return ` ` + camelName + `: s.field("` + name + `", ` + nullableToOption(schemaCode) + `),`;
|
|
326
|
-
} else {
|
|
327
|
-
return ` ` + camelName + `: s.fieldOr("` + name + `", ` + schemaCode + `, None),`;
|
|
328
|
-
}
|
|
329
|
-
} else if (cannotSetDefault(schemaCode)) {
|
|
330
|
-
return ` ` + camelName + `: s.field("` + name + `", S.option(` + schemaCode + `)),`;
|
|
310
|
+
return ` ` + camelName + `: s.field("` + name + `", ` + nullableToOption(schemaCode) + `),`;
|
|
331
311
|
} else {
|
|
332
|
-
return ` ` + camelName + `: s.
|
|
312
|
+
return ` ` + camelName + `: s.field("` + name + `", S.option(` + schemaCode + `)),`;
|
|
333
313
|
}
|
|
334
314
|
}).join("\n");
|
|
335
315
|
return `S.object(s => ` + constructorName + `({\n` + fields + `\n }))`;
|
|
@@ -422,15 +402,9 @@ function generateSchemaWithContext(ctx, depthOpt, extractedTypeMap, irType) {
|
|
|
422
402
|
if (param[2]) {
|
|
423
403
|
return ` ` + camelName + `: s.field("` + name + `", ` + schemaCode + `),`;
|
|
424
404
|
} else if (alreadyNullable) {
|
|
425
|
-
|
|
426
|
-
return ` ` + camelName + `: s.field("` + name + `", ` + nullableToOption(schemaCode) + `),`;
|
|
427
|
-
} else {
|
|
428
|
-
return ` ` + camelName + `: s.fieldOr("` + name + `", ` + schemaCode + `, None),`;
|
|
429
|
-
}
|
|
430
|
-
} else if (cannotSetDefault(schemaCode)) {
|
|
431
|
-
return ` ` + camelName + `: s.field("` + name + `", S.option(` + schemaCode + `)),`;
|
|
405
|
+
return ` ` + camelName + `: s.field("` + name + `", ` + nullableToOption(schemaCode) + `),`;
|
|
432
406
|
} else {
|
|
433
|
-
return ` ` + camelName + `: s.
|
|
407
|
+
return ` ` + camelName + `: s.field("` + name + `", S.option(` + schemaCode + `)),`;
|
|
434
408
|
}
|
|
435
409
|
}).join("\n");
|
|
436
410
|
return `S.object(s => {\n` + fields$1 + `\n })`;
|
|
@@ -479,15 +453,9 @@ function generateSchemaWithContext(ctx, depthOpt, extractedTypeMap, irType) {
|
|
|
479
453
|
if (param[2]) {
|
|
480
454
|
return ` ` + camelName + `: s.field("` + name + `", ` + schemaCode + `),`;
|
|
481
455
|
} else if (alreadyNullable) {
|
|
482
|
-
|
|
483
|
-
return ` ` + camelName + `: s.field("` + name + `", ` + nullableToOption(schemaCode) + `),`;
|
|
484
|
-
} else {
|
|
485
|
-
return ` ` + camelName + `: s.fieldOr("` + name + `", ` + schemaCode + `, None),`;
|
|
486
|
-
}
|
|
487
|
-
} else if (cannotSetDefault(schemaCode)) {
|
|
488
|
-
return ` ` + camelName + `: s.field("` + name + `", S.option(` + schemaCode + `)),`;
|
|
456
|
+
return ` ` + camelName + `: s.field("` + name + `", ` + nullableToOption(schemaCode) + `),`;
|
|
489
457
|
} else {
|
|
490
|
-
return ` ` + camelName + `: s.
|
|
458
|
+
return ` ` + camelName + `: s.field("` + name + `", S.option(` + schemaCode + `)),`;
|
|
491
459
|
}
|
|
492
460
|
}).join("\n");
|
|
493
461
|
return `S.object(s => {\n` + fields$2 + `\n })`;
|
|
@@ -574,7 +542,6 @@ let addWarning = GenerationContext.addWarning;
|
|
|
574
542
|
|
|
575
543
|
export {
|
|
576
544
|
addWarning,
|
|
577
|
-
cannotSetDefault,
|
|
578
545
|
nullableToOption,
|
|
579
546
|
applyConstraints,
|
|
580
547
|
generateSchemaWithContext,
|
package/package.json
CHANGED
|
@@ -5,9 +5,7 @@ open Types
|
|
|
5
5
|
|
|
6
6
|
let addWarning = GenerationContext.addWarning
|
|
7
7
|
|
|
8
|
-
// Sury can't set defaults for
|
|
9
|
-
let cannotSetDefault = (schemaCode: string) =>
|
|
10
|
-
String.includes(schemaCode, "S.dict(") || String.includes(schemaCode, "S.object(")
|
|
8
|
+
// Sury can't set defaults for nullableAsOption schemas, so we use s.field with S.option instead of s.fieldOr
|
|
11
9
|
|
|
12
10
|
// Replace S.nullableAsOption(...) with S.option(...) to avoid double-option wrapping
|
|
13
11
|
let nullableToOption = (schemaCode: string) =>
|
|
@@ -85,17 +83,9 @@ let rec generateSchemaWithContext = (~ctx: GenerationContext.t, ~depth=0, ~extra
|
|
|
85
83
|
if isRequired {
|
|
86
84
|
` ${camelName}: s.field("${name}", ${schemaCode}),`
|
|
87
85
|
} else if alreadyNullable {
|
|
88
|
-
|
|
89
|
-
` ${camelName}: s.field("${name}", ${nullableToOption(schemaCode)}),`
|
|
90
|
-
} else {
|
|
91
|
-
` ${camelName}: s.fieldOr("${name}", ${schemaCode}, None),`
|
|
92
|
-
}
|
|
86
|
+
` ${camelName}: s.field("${name}", ${nullableToOption(schemaCode)}),`
|
|
93
87
|
} else {
|
|
94
|
-
|
|
95
|
-
` ${camelName}: s.field("${name}", S.option(${schemaCode})),`
|
|
96
|
-
} else {
|
|
97
|
-
` ${camelName}: s.fieldOr("${name}", S.nullableAsOption(${schemaCode}), None),`
|
|
98
|
-
}
|
|
88
|
+
` ${camelName}: s.field("${name}", S.option(${schemaCode})),`
|
|
99
89
|
}
|
|
100
90
|
})
|
|
101
91
|
->Array.join("\n")
|
|
@@ -197,17 +187,9 @@ let rec generateSchemaWithContext = (~ctx: GenerationContext.t, ~depth=0, ~extra
|
|
|
197
187
|
if isRequired {
|
|
198
188
|
` ${camelName}: s.field("${name}", ${schemaCode}),`
|
|
199
189
|
} else if alreadyNullable {
|
|
200
|
-
|
|
201
|
-
` ${camelName}: s.field("${name}", ${nullableToOption(schemaCode)}),`
|
|
202
|
-
} else {
|
|
203
|
-
` ${camelName}: s.fieldOr("${name}", ${schemaCode}, None),`
|
|
204
|
-
}
|
|
190
|
+
` ${camelName}: s.field("${name}", ${nullableToOption(schemaCode)}),`
|
|
205
191
|
} else {
|
|
206
|
-
|
|
207
|
-
` ${camelName}: s.field("${name}", S.option(${schemaCode})),`
|
|
208
|
-
} else {
|
|
209
|
-
` ${camelName}: s.fieldOr("${name}", S.nullableAsOption(${schemaCode}), None),`
|
|
210
|
-
}
|
|
192
|
+
` ${camelName}: s.field("${name}", S.option(${schemaCode})),`
|
|
211
193
|
}
|
|
212
194
|
})->Array.join("\n")
|
|
213
195
|
`S.object(s => ${constructorName}({\n${fields}\n }))`
|
|
@@ -261,17 +243,9 @@ let rec generateSchemaWithContext = (~ctx: GenerationContext.t, ~depth=0, ~extra
|
|
|
261
243
|
if isRequired {
|
|
262
244
|
` ${camelName}: s.field("${name}", ${schemaCode}),`
|
|
263
245
|
} else if alreadyNullable {
|
|
264
|
-
|
|
265
|
-
` ${camelName}: s.field("${name}", ${nullableToOption(schemaCode)}),`
|
|
266
|
-
} else {
|
|
267
|
-
` ${camelName}: s.fieldOr("${name}", ${schemaCode}, None),`
|
|
268
|
-
}
|
|
246
|
+
` ${camelName}: s.field("${name}", ${nullableToOption(schemaCode)}),`
|
|
269
247
|
} else {
|
|
270
|
-
|
|
271
|
-
` ${camelName}: s.field("${name}", S.option(${schemaCode})),`
|
|
272
|
-
} else {
|
|
273
|
-
` ${camelName}: s.fieldOr("${name}", S.nullableAsOption(${schemaCode}), None),`
|
|
274
|
-
}
|
|
248
|
+
` ${camelName}: s.field("${name}", S.option(${schemaCode})),`
|
|
275
249
|
}
|
|
276
250
|
})
|
|
277
251
|
->Array.join("\n")
|
|
@@ -296,17 +270,9 @@ let rec generateSchemaWithContext = (~ctx: GenerationContext.t, ~depth=0, ~extra
|
|
|
296
270
|
if isRequired {
|
|
297
271
|
` ${camelName}: s.field("${name}", ${schemaCode}),`
|
|
298
272
|
} else if alreadyNullable {
|
|
299
|
-
|
|
300
|
-
` ${camelName}: s.field("${name}", ${nullableToOption(schemaCode)}),`
|
|
301
|
-
} else {
|
|
302
|
-
` ${camelName}: s.fieldOr("${name}", ${schemaCode}, None),`
|
|
303
|
-
}
|
|
273
|
+
` ${camelName}: s.field("${name}", ${nullableToOption(schemaCode)}),`
|
|
304
274
|
} else {
|
|
305
|
-
|
|
306
|
-
` ${camelName}: s.field("${name}", S.option(${schemaCode})),`
|
|
307
|
-
} else {
|
|
308
|
-
` ${camelName}: s.fieldOr("${name}", S.nullableAsOption(${schemaCode}), None),`
|
|
309
|
-
}
|
|
275
|
+
` ${camelName}: s.field("${name}", S.option(${schemaCode})),`
|
|
310
276
|
}
|
|
311
277
|
})
|
|
312
278
|
->Array.join("\n")
|