1 | "use strict";
|
2 |
|
3 | const ruleComposer = require('eslint-rule-composer');
|
4 | const eslint = require('eslint');
|
5 | const noInvalidThisRule = new eslint.Linter().getRules().get('no-invalid-this');
|
6 |
|
7 | module.exports = ruleComposer.filterReports(
|
8 | noInvalidThisRule,
|
9 | (problem, metadata) => {
|
10 | let inClassProperty = false;
|
11 | let node = problem.node;
|
12 |
|
13 | while (node) {
|
14 | if (node.type === "ClassProperty") {
|
15 | inClassProperty = true;
|
16 | return;
|
17 | }
|
18 |
|
19 | node = node.parent;
|
20 | }
|
21 |
|
22 | return !inClassProperty;
|
23 | }
|
24 | );
|