@elsikora/nestjs-crud-automator
Version:
A library for automating the creation of CRUD operations in NestJS.
25 lines (22 loc) • 1.1 kB
JavaScript
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