25 lines
605 B
JavaScript
25 lines
605 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, metadata) => {
|
|
let inClassProperty = false;
|
|
let node = problem.node;
|
|
|
|
while (node) {
|
|
if (node.type === "ClassProperty") {
|
|
inClassProperty = true;
|
|
return;
|
|
}
|
|
|
|
node = node.parent;
|
|
}
|
|
|
|
return !inClassProperty;
|
|
}
|
|
);
|