UNPKG

@tsed/schema

Version:
22 lines (21 loc) 781 B
import { getValue, uniqBy } from "@tsed/core"; import { SpecTypes } from "../../domain/SpecTypes.js"; import { execMapper, registerJsonSchemaMapper } from "../../registries/JsonSchemaMapperContainer.js"; function generate(model, options) { options = { ...options, specType: SpecTypes.OPENAPI }; const specJson = { paths: execMapper("paths", [model], options) }; specJson.tags = uniqBy(options.tags, "name"); if (Object.keys(getValue(options, "components.schemas", {})).length) { specJson.components = { schemas: options.components.schemas }; } return specJson; } registerJsonSchemaMapper("generate", generate, SpecTypes.OPENAPI); registerJsonSchemaMapper("generate", generate, SpecTypes.SWAGGER);