|
@@ -7,6 +7,7 @@ const file = process.argv[2]
|
|
|
console.log(file)
|
|
console.log(file)
|
|
|
|
|
|
|
|
const result = z.toJSONSchema(Config.Info, {
|
|
const result = z.toJSONSchema(Config.Info, {
|
|
|
|
|
+ io: "input", // Generate input shape (treats optional().default() as not required)
|
|
|
/**
|
|
/**
|
|
|
* We'll use the `default` values of the field as the only value in `examples`.
|
|
* We'll use the `default` values of the field as the only value in `examples`.
|
|
|
* This will ensure no docs are needed to be read, as the configuration is
|
|
* This will ensure no docs are needed to be read, as the configuration is
|
|
@@ -14,8 +15,15 @@ const result = z.toJSONSchema(Config.Info, {
|
|
|
*
|
|
*
|
|
|
* See https://json-schema.org/draft/2020-12/draft-bhutton-json-schema-validation-00#rfc.section.9.5
|
|
* See https://json-schema.org/draft/2020-12/draft-bhutton-json-schema-validation-00#rfc.section.9.5
|
|
|
*/
|
|
*/
|
|
|
- override(input) {
|
|
|
|
|
- const schema = input.jsonSchema
|
|
|
|
|
|
|
+ override(ctx) {
|
|
|
|
|
+ const schema = ctx.jsonSchema
|
|
|
|
|
+
|
|
|
|
|
+ // Preserve strictness: set additionalProperties: false for objects
|
|
|
|
|
+ if (schema && typeof schema === "object" && schema.type === "object" && schema.additionalProperties === undefined) {
|
|
|
|
|
+ schema.additionalProperties = false
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Add examples and default descriptions for string fields with defaults
|
|
|
if (schema && typeof schema === "object" && "type" in schema && schema.type === "string" && schema?.default) {
|
|
if (schema && typeof schema === "object" && "type" in schema && schema.type === "string" && schema?.default) {
|
|
|
if (!schema.examples) {
|
|
if (!schema.examples) {
|
|
|
schema.examples = [schema.default]
|
|
schema.examples = [schema.default]
|