import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; import { interpolate } from '@ghostfolio/common/helper'; import { Controller, Get, Param, Res, Version, VERSION_NEUTRAL } from '@nestjs/common'; import { Response } from 'express'; import { readFileSync } from 'fs'; import { join } from 'path'; @Controller('assets') export class AssetsController { private webManifest = ''; public constructor( public readonly configurationService: ConfigurationService ) { try { this.webManifest = readFileSync( join(__dirname, 'assets', 'site.webmanifest'), 'utf8' ); } catch {} } @Get('/:languageCode/site.webmanifest') @Version(VERSION_NEUTRAL) public getWebManifest( @Param('languageCode') languageCode: string, @Res() response: Response ): void { const rootUrl = this.configurationService.get('ROOT_URL'); const webManifest = interpolate(this.webManifest, { languageCode, rootUrl }); response.setHeader('Content-Type', 'application/json'); response.send(webManifest); } }