@tsed/schema
Version:
JsonSchema module for Ts.ED Framework
22 lines (21 loc) • 828 B
JavaScript
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);