UNPKG

@tsed/schema

Version:
37 lines (36 loc) 1.29 kB
import { getValue, setValue } from "@tsed/core"; import { SpecTypes } from "../domain/SpecTypes.js"; import { getSpecType } from "./getSpecType.js"; import { mapOpenSpec2 } from "./mapOpenSpec2.js"; import { mapOpenSpec3 } from "./mapOpenSpec3.js"; import { mergeSpec } from "./mergeSpec.js"; /** * @ignore * @param spec * @param fileSpec * @param version * @param acceptMimes * @param specVersion */ export function mapOpenSpec(spec, { fileSpec, acceptMimes, specVersion, version }) { specVersion = specVersion || getValue(spec, "openapi", getValue(spec, "swagger", "2.0")); const options = { specVersion, acceptMimes }; switch (getSpecType(specVersion)) { case SpecTypes.OPENAPI: spec = mapOpenSpec3(spec, options); fileSpec = fileSpec ? mapOpenSpec3(fileSpec, options) : fileSpec; break; default: case SpecTypes.SWAGGER: spec = mapOpenSpec2(spec, options); fileSpec = fileSpec ? mapOpenSpec2(fileSpec, options) : fileSpec; break; } spec = mergeSpec(spec, fileSpec); setValue(spec, "info.title", getValue(spec, "info.title", "Api documentation")); setValue(spec, "info.version", getValue(spec, "info.version", version)); return spec; }