(schema: SchemaDef, model: string)
| 451 | } |
| 452 | |
| 453 | export function getDiscriminatorField(schema: SchemaDef, model: string) { |
| 454 | const modelDef = requireModel(schema, model); |
| 455 | const delegateAttr = modelDef.attributes?.find((attr) => attr.name === '@@delegate'); |
| 456 | if (!delegateAttr) { |
| 457 | return undefined; |
| 458 | } |
| 459 | const discriminator = delegateAttr.args?.find((arg) => arg.name === 'discriminator'); |
| 460 | if (!discriminator || !ExpressionUtils.isField(discriminator.value)) { |
| 461 | throw createInternalError(`Discriminator field not defined for model "${model}"`, model); |
| 462 | } |
| 463 | return discriminator.value.field; |
| 464 | } |
| 465 | |
| 466 | export function getDelegateDiscriminatorValue(schema: SchemaDef, model: string) { |
| 467 | const modelDef = requireModel(schema, model); |
no test coverage detected