|
|
|
|
@ -83,6 +83,8 @@ export class HtmlTemplateMiddleware implements NestMiddleware {
|
|
|
|
|
private indexHtmlMap: { [languageCode: string]: string } = {};
|
|
|
|
|
|
|
|
|
|
public constructor(private readonly i18nService: I18nService) {
|
|
|
|
|
Logger.debug('Initialize HtmlTemplateMiddleware', 'HtmlTemplateMiddleware');
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
this.indexHtmlMap = SUPPORTED_LANGUAGE_CODES.reduce(
|
|
|
|
|
(map, languageCode) => ({
|
|
|
|
|
@ -104,6 +106,8 @@ export class HtmlTemplateMiddleware implements NestMiddleware {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public use(request: Request, response: Response, next: NextFunction) {
|
|
|
|
|
Logger.debug('use', 'HtmlTemplateMiddleware');
|
|
|
|
|
|
|
|
|
|
const path = request.originalUrl.replace(/\/$/, '');
|
|
|
|
|
let languageCode = path.substr(1, 2);
|
|
|
|
|
|
|
|
|
|
@ -120,6 +124,17 @@ export class HtmlTemplateMiddleware implements NestMiddleware {
|
|
|
|
|
this.isFileRequest(path) ||
|
|
|
|
|
!environment.production
|
|
|
|
|
) {
|
|
|
|
|
Logger.debug(`Path: ${path}`, 'HtmlTemplateMiddleware');
|
|
|
|
|
Logger.debug(
|
|
|
|
|
`Starts with api: ${path.startsWith('/api/')}`,
|
|
|
|
|
'HtmlTemplateMiddleware'
|
|
|
|
|
);
|
|
|
|
|
Logger.debug(
|
|
|
|
|
`File request: ${this.isFileRequest(path)}`,
|
|
|
|
|
'HtmlTemplateMiddleware'
|
|
|
|
|
);
|
|
|
|
|
Logger.debug('Skip', 'HtmlTemplateMiddleware');
|
|
|
|
|
|
|
|
|
|
// Skip
|
|
|
|
|
next();
|
|
|
|
|
} else {
|
|
|
|
|
@ -146,11 +161,15 @@ export class HtmlTemplateMiddleware implements NestMiddleware {
|
|
|
|
|
})}`
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
Logger.debug('Send index HTML', 'HtmlTemplateMiddleware');
|
|
|
|
|
|
|
|
|
|
return response.send(indexHtml);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private isFileRequest(filename: string) {
|
|
|
|
|
Logger.debug(`isFileRequest: ${filename}`, 'HtmlTemplateMiddleware');
|
|
|
|
|
|
|
|
|
|
if (filename === '/assets/LICENSE') {
|
|
|
|
|
return true;
|
|
|
|
|
} else if (
|
|
|
|
|
|