(schema: Schema.Top)
| 9 | const MODEL_REF = "https://models.dev/model-schema.json#/$defs/Model" |
| 10 | |
| 11 | function generateEffect(schema: Schema.Top) { |
| 12 | const document = Schema.toJsonSchemaDocument(schema) |
| 13 | const normalized = normalize({ |
| 14 | $schema: "https://json-schema.org/draft/2020-12/schema", |
| 15 | ...document.schema, |
| 16 | $defs: document.definitions, |
| 17 | }) |
| 18 | if (!isRecord(normalized)) throw new Error("schema generator produced a non-object schema") |
| 19 | const restored = restoreModelRefs(normalized) |
| 20 | if (!isRecord(restored)) throw new Error("schema generator produced a non-object schema") |
| 21 | restored.allowComments = true |
| 22 | restored.allowTrailingCommas = true |
| 23 | return restored |
| 24 | } |
| 25 | |
| 26 | function normalize(value: unknown): unknown { |
| 27 | if (Array.isArray(value)) return value.map(normalize) |
no test coverage detected