import {Constant, Controller} from "@tsed/di"; import {HeaderParams} from "@tsed/platform-params"; import {View} from "@tsed/platform-views"; import {SwaggerSettings} from "@tsed/swagger"; import {Hidden, Get, Returns} from "@tsed/schema"; @Hidden() @Controller("/") export class IndexController { @Constant("swagger", []) private swagger: SwaggerSettings[]; @Get("/") @View("swagger.ejs") @(Returns(200, String).ContentType("text/html")) get(@HeaderParams("x-forwarded-proto") protocol: string, @HeaderParams("host") host: string) { const hostUrl = `${protocol || "http"}://${host}`; return { BASE_URL: hostUrl, docs: this.swagger.map((conf) => { return { url: hostUrl + conf.path, ...conf }; }) }; } }