@tsed/cli
Version:
CLI to bootstrap your Ts.ED project
45 lines (41 loc) • 1.26 kB
JavaScript
import { defineTemplate } from "../utils/defineTemplate.js";
export default defineTemplate({
id: "index.controller",
label: "Index Controller",
description: "Create a new index controller file",
outputDir: "{{srcDir}}/controllers/pages",
fileName: "index.controller",
hidden: true,
render(_, ctx) {
return `import {Constant, Controller} from "@tsed/di";
import {HeaderParams} from "@tsed/platform-params";
import {View} from "@tsed/schema";
${ctx.swagger ? 'import type {SwaggerSettings} from "@tsed/swagger";' : ""}
import {Hidden, Get, Returns} from "@tsed/schema";
export class IndexController {
${ctx.swagger
? `
private swagger: SwaggerSettings[];`
: ""}
@(Returns(200, String).ContentType("text/html"))
get( protocol: string, host: string) {
const hostUrl = \`\${protocol || "http"}://\${host}\`;
return {
BASE_URL: hostUrl,
docs: ${ctx.swagger
? `this.swagger.map((conf) => {
return {
url: hostUrl + conf.path,
...conf
};
})`
: "[]"}
};
}
}`;
}
});