All files / src/utils name_validator.ts

100% Statements 26/26
100% Branches 12/12
100% Functions 2/2
100% Lines 26/26

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 271x 1x 1x 1x 1x 1x 89686x 89686x 1x 1x 728x 1x 1x 727x 728x 2x 2x 2x 2x 725x 728x 728x 728x 728x 1x 1x  
import {NamingRuleConfig} from "../rules/_naming_rule_config";
 
export class NameValidator {
 
  /** compile the configured ignorePatterns, case insensitive */
  public static compileIgnorePatterns(params: NamingRuleConfig): RegExp[] {
    return (params.ignorePatterns || []).map(ignored => new RegExp(ignored, "i"));
  }
 
  public static violatesRule(name: string, pattern: RegExp, params: NamingRuleConfig, ignorePatterns: readonly RegExp[]): boolean {
    if (params.ignoreNames && params.ignoreNames.indexOf(name.toUpperCase()) >= 0) {
      return false;
    }
 
    for (const ignored of ignorePatterns) {
      if (ignored.test(name)) {
        return false;
      }
    }
 
    return !params.patternKind || params.patternKind === "required" ?
      pattern.test(name) === false :
      pattern.test(name) === true;
  }
 
}