Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 5x 5x 10x 20x 18x 18x 18x 2x 2x 20x 20x 6x 14x 5x | import { I18nResolver } from '../index'; import { Injectable, ExecutionContext } from '@nestjs/common'; import { pick } from 'accept-language-parser'; import { I18nService } from '../services/i18n.service'; @Injectable() export class AcceptLanguageResolver implements I18nResolver { constructor() {} async resolve( context: ExecutionContext, ): Promise<string | string[] | undefined> { let req, service: I18nService; switch (context.getType() as string) { case 'http': req = context.switchToHttp().getRequest(); service = req.i18nService; break; case 'graphql': [, , { req, i18nService: service }] = context.getArgs(); break; default: return undefined; } const lang = req.raw ? req.raw.headers['accept-language'] : req.headers['accept-language']; if (lang) { return pick(await service.getSupportedLanguages(), lang); } return lang; } } |