22 lines
529 B
JavaScript
22 lines
529 B
JavaScript
"use strict";
|
|
|
|
const ruleComposer = require("eslint-rule-composer");
|
|
const eslint = require("eslint");
|
|
const noInvalidThisRule = new eslint.Linter().getRules().get("no-invalid-this");
|
|
|
|
module.exports = ruleComposer.filterReports(noInvalidThisRule, problem => {
|
|
let inClassProperty = false;
|
|
let node = problem.node;
|
|
|
|
while (node) {
|
|
if (node.type === "ClassProperty" || node.type === "ClassPrivateProperty") {
|
|
inClassProperty = true;
|
|
return;
|
|
}
|
|
|
|
node = node.parent;
|
|
}
|
|
|
|
return !inClassProperty;
|
|
});
|