All files / lib/resolvers accept-language.resolver.ts

100% Statements 10/10
100% Branches 2/2
100% Functions 2/2
100% Lines 8/8

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  5x       5x     5x       12x 12x 6x 6x   6x      
import { I18nResolver } from '../index';
import { Injectable } from '@nestjs/common';
import { I18nResolverOptions } from '../decorators/i18n-resolver-options.decorator';
import { I18nLanguages } from '../decorators/i18n-languages.decorator';
import { I18nService } from '../services/i18n.service';
import { pick } from 'accept-language-parser';
 
@Injectable()
export class AcceptLanguageResolver implements I18nResolver {
  constructor() {}
 
  async resolve(req: any) {
    const lang = req.headers['accept-language'];
    if (lang) {
      const service: I18nService = req.i18nService;
      return pick(await service.getSupportedLanguages(), lang);
    }
    return lang;
  }
}