mirror of
https://github.com/Redocly/redoc.git
synced 2025-02-24 22:10:33 +03:00
fix: remove implicit discriminator mapping when explicit is present
This commit is contained in:
parent
11cc4c4c3e
commit
cbb9f50fa0
|
@ -216,7 +216,10 @@ export class SchemaModel {
|
||||||
) {
|
) {
|
||||||
const discriminator = getDiscriminator(schema)!;
|
const discriminator = getDiscriminator(schema)!;
|
||||||
this.discriminatorProp = discriminator.propertyName;
|
this.discriminatorProp = discriminator.propertyName;
|
||||||
const inversedMapping = parser.findDerived([...(schema.parentRefs || []), this.pointer]);
|
const implicitInversedMapping = parser.findDerived([
|
||||||
|
...(schema.parentRefs || []),
|
||||||
|
this.pointer,
|
||||||
|
]);
|
||||||
|
|
||||||
if (schema.oneOf) {
|
if (schema.oneOf) {
|
||||||
for (const variant of schema.oneOf) {
|
for (const variant of schema.oneOf) {
|
||||||
|
@ -224,21 +227,24 @@ export class SchemaModel {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const name = JsonPointer.baseName(variant.$ref);
|
const name = JsonPointer.baseName(variant.$ref);
|
||||||
inversedMapping[variant.$ref] = [name];
|
implicitInversedMapping[variant.$ref] = [name];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const mapping = discriminator.mapping || {};
|
const mapping = discriminator.mapping || {};
|
||||||
|
const explicitInversedMapping = {};
|
||||||
for (const name in mapping) {
|
for (const name in mapping) {
|
||||||
const $ref = mapping[name];
|
const $ref = mapping[name];
|
||||||
|
|
||||||
if (Array.isArray(inversedMapping[$ref])) {
|
if (Array.isArray(explicitInversedMapping[$ref])) {
|
||||||
inversedMapping[$ref].push(name);
|
explicitInversedMapping[$ref].push(name);
|
||||||
} else {
|
} else {
|
||||||
inversedMapping[$ref] = [name];
|
explicitInversedMapping[$ref] = [name];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const inversedMapping = { ...implicitInversedMapping, ...explicitInversedMapping };
|
||||||
|
|
||||||
const refs: Array<{ $ref; name }> = [];
|
const refs: Array<{ $ref; name }> = [];
|
||||||
|
|
||||||
for (const $ref of Object.keys(inversedMapping)) {
|
for (const $ref of Object.keys(inversedMapping)) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user