@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
- if (cannotSetDefault(schemaCode)) {
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.fieldOr("` + name + `", S.nullableAsOption(` + schemaCode + `), None),`;
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
- if (cannotSetDefault(schemaCode)) {
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.fieldOr("` + name + `", S.nullableAsOption(` + schemaCode + `), None),`;
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
- if (cannotSetDefault(schemaCode)) {
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.fieldOr("` + name + `", S.nullableAsOption(` + schemaCode + `), None),`;
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
- if (cannotSetDefault(schemaCode)) {
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.fieldOr("` + name + `", S.nullableAsOption(` + schemaCode + `), None),`;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@f3liz/rescript-autogen-openapi",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "description": "Generate ReScript code with Sury schemas from OpenAPI 3.1 specs. Supports multiple forks with diff/merge capabilities.",
5
5
  "keywords": [
6
6
  "rescript",
@@ -5,9 +5,7 @@ open Types
5
5
 
6
6
  let addWarning = GenerationContext.addWarning
7
7
 
8
- // Sury can't set defaults for dict/object types, so we need s.field with S.option instead of s.fieldOr
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
- if cannotSetDefault(schemaCode) {
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
- if cannotSetDefault(schemaCode) {
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
- if cannotSetDefault(schemaCode) {
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
- if cannotSetDefault(schemaCode) {
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
- if cannotSetDefault(schemaCode) {
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
- if cannotSetDefault(schemaCode) {
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
- if cannotSetDefault(schemaCode) {
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
- if cannotSetDefault(schemaCode) {
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")