UNPKG

@elsikora/nestjs-crud-automator

Version:

A library for automating the creation of CRUD operations in NestJS.

25 lines (22 loc) 1.1 kB
import { getSchemaPath } from '@nestjs/swagger'; import { ApiRouteValidateDiscriminatedDtoProperties } from './validate-dto-properties.utility.js'; /** * Builds an OpenAPI oneOf schema with discriminator metadata for route-level DTO variants. * @param {TApiRouteDiscriminatedDtoProperties} properties - Route-level discriminated DTO config. * @param {string} context - Error message context. * @returns {SchemaObject} OpenAPI schema for a discriminated root DTO. */ function ApiRouteBuildDiscriminatedDtoOpenApiSchema(properties, context) { ApiRouteValidateDiscriminatedDtoProperties(properties, context); return { discriminator: { mapping: Object.fromEntries(Object.entries(properties.discriminator.mapping).map(([key, value]) => [key, getSchemaPath(value)])), propertyName: properties.discriminator.propertyName, }, oneOf: properties.type.map((type) => { return { $ref: getSchemaPath(type) }; }), }; } export { ApiRouteBuildDiscriminatedDtoOpenApiSchema }; //# sourceMappingURL=build-open-api-schema.utility.js.map