UNPKG

@tsed/schema

Version:
22 lines (21 loc) 828 B
import { isString } from "@tsed/core"; import { registerJsonSchemaMapper } from "../../registries/JsonSchemaMapperContainer.js"; import { toRef } from "../../utils/ref.js"; export function discriminatorMappingMapper(obj, _, options) { if (obj.discriminator?.mapping) { const entries = Object.entries(obj.discriminator.mapping); const newMapping = {}; for (const [key, value] of entries) { newMapping[key] = isString(value) ? value : toRef(value, null, options).$ref; } obj.discriminator.mapping = newMapping; } return obj; } function defaultDiscriminatorMappingMapper(obj) { if (obj.discriminator?.mapping) { delete obj.discriminator.mapping; } return obj; } registerJsonSchemaMapper("discriminatorMapping", defaultDiscriminatorMappingMapper);