UNPKG

@brewww/authentication-service

Version:
68 lines 3.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const path = require("path"); const swagger_1 = require("@nestjs/swagger"); const config_1 = require("./config"); const api_key_guard_1 = require("./utils/guards/api-key/api-key.guard"); const app_module_1 = require("./app.module"); const config_2 = require("@nestjs/config"); const http_exception_filter_1 = require("./filter/http-exception.filter"); const core_1 = require("@nestjs/core"); const mjml2html = require("mjml"); const custom_validation_pipe_1 = require("./validation/custom-validation.pipe"); function initValidationPipe(app) { app.useGlobalPipes(new custom_validation_pipe_1.CustomValidationPipe()); } function initSwagger(app) { if ((0, config_1.serverConfig)().swaggerEnabled) { const swaggerConfig = new swagger_1.DocumentBuilder() .setTitle((0, config_1.appConfig)().name) .setDescription((0, config_1.appConfig)().description) .setVersion((0, config_1.appConfig)().version) .addServer((0, config_1.serverConfig)().basePath) .addSecurity("ApiKey", { type: "apiKey", name: "x-api-key", in: "header", }) .build(); const document = swagger_1.SwaggerModule.createDocument(app, swaggerConfig); swagger_1.SwaggerModule.setup("docs", app, document); } } function initGlobalGuard(app) { app.useGlobalGuards(new api_key_guard_1.ApiKeyGuard(app.get(config_2.ConfigService))); } function buildMjmlTemplates(mjmlDir = __dirname + "/template/templates/mjml", htmlDir = __dirname + "/template/templates/html") { if (!fs.existsSync(htmlDir)) fs.mkdirSync(htmlDir, { recursive: true }); fs.readdirSync(mjmlDir).forEach((fileOrDirectoryName) => { const mjmlItemPath = path.join(mjmlDir, fileOrDirectoryName); const htmlItemPath = path.join(htmlDir, fileOrDirectoryName); if (fs.statSync(mjmlItemPath).isDirectory()) { buildMjmlTemplates(mjmlItemPath, htmlItemPath); } else if (fileOrDirectoryName.endsWith(".mjml")) { const mjmlTemplateContent = fs.readFileSync(mjmlItemPath, "utf8"); const { html: htmlTemplateContent } = mjml2html(mjmlTemplateContent); fs.writeFileSync(path.join(htmlDir, fileOrDirectoryName.replace(".mjml", ".html")), htmlTemplateContent); console.log(`Converted ${fileOrDirectoryName} to HTML`); } }); } async function bootstrap() { buildMjmlTemplates(); const app = await core_1.NestFactory.create(app_module_1.AppModule); app.enableCors({ origin: (0, config_1.serverConfig)().corsAllowedOrigins, credentials: true, }); app.useGlobalFilters(new http_exception_filter_1.HttpExceptionFilter()); initGlobalGuard(app); initValidationPipe(app); initSwagger(app); await app.listen((0, config_1.serverConfig)().port); } bootstrap(); //# sourceMappingURL=main.js.map