В настоящее время я работаю над некоторым кодом, чтобы запретить использование глобальных констант в области ввода пользователя, которая позволяет им использовать формулы.
Я использую espree в качестве парсера.
В настоящее время у меня есть некоторый рабочий код для поиска использования глобального или непосредственного потомка глобального, но если я установлю что-то вроде Parent.Child0.Child1, правило перестанет работать.
Я думаю, было бы легчеобнаружение, что при любом количестве потомков, если родитель находится в черном списке, мы должны запретить предложение, но я не знаю, как получить к нему доступ.
Это может быть довольно просто, но я ничего не нашел по этой темеЯ взглянул на эту страницу для справки, но у нее не было ответа: https://eslint.org/docs/developer-guide/selectors
const allowedReadOnlyGlobals = ['object1', 'object3', 'object3'];
allowedReadOnlyGlobals.forEach(globalObj =>
disallowedSelectors.push({
selector: `AssignmentExpression[left.object.name="${globalObj}"]`,
message: `It is not allowed to replace members of the '${globalObj}' object.`
})
);
Я ожидаю какое-то правило, подобное этому, но я не уверен, что оно будет существовать
selector: `AssignmentExpression[object.parent="${globalObj}"]`,
(остальная часть кода, я ожидаю, что он будет таким же)