All files / lib/resolvers header.resolver.ts

92.31% Statements 12/13
60% Branches 3/5
100% Functions 2/2
90.91% Lines 10/11

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  5x 5x       5x     3x           28x 28x         28x 8x 8x       28x      
import { I18nResolver } from '../index';
import { Injectable } from '@nestjs/common';
import { I18nResolverOptions } from '../decorators/i18n-resolver-options.decorator';
import { I18nLanguages } from '../decorators/i18n-languages.decorator';
 
@Injectable()
export class HeaderResolver implements I18nResolver {
  constructor(
    @I18nResolverOptions()
    private keys: string[] = [],
  ) {}
 
  resolve(req: any) {
    let lang: string;
 
    for (const key of this.keys) {
      Iif (key === 'accept-language') {
        console.warn(
          'HeaderResolver does not support RFC4647 Accept-Language header. Please use AcceptLanguageResolver instead.',
        );
      }
      if (req.headers[key] !== undefined) {
        lang = req.headers[key];
        break;
      }
    }
 
    return lang;
  }
}