All files noMethodSignatureRule.ts

100% Statements 17/17
100% Branches 4/4
100% Functions 4/4
100% Lines 14/14
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 241x 1x   1x 1x   1x 1x       1x   1x   1x 1x 25x 2x   25x   1x  
import * as ts from "typescript";
import * as Lint from "tslint";
 
export class Rule extends Lint.Rules.AbstractRule {
  public static FAILURE_STRING = "Method signature is mutable, use property signature with readonly modifier instead.";
 
  public apply(sourceFile: ts.SourceFile): Lint.RuleFailure[] {
    const noThisKeywordWalker = new NoMethodSignatureWalker(
      sourceFile,
      this.getOptions()
    );
    return this.applyWithWalker(noThisKeywordWalker);
  }
}
 
class NoMethodSignatureWalker extends Lint.RuleWalker {
  public visitNode(node: ts.Node): void {
    if (node && node.kind === ts.SyntaxKind.MethodSignature) {
      this.addFailureAtNode(node, Rule.FAILURE_STRING);
    }
    super.visitNode(node);
  }
}