@tsed/schema
Version:
JsonSchema module for Ts.ED Framework
22 lines (21 loc) • 781 B
JavaScript
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);