/
drndsv
/
react
Обзор
Документация
Войти
/
drndsv
/
react
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
node_modules/eslint/lib/rules/symbol-description.js
73 строки
2 KB
drndsv
Initial commit
14 апр 2025, 22:53
14 апр 2025, 22:53
641ac8a
Код
Авторство
О чём код?
/** * @fileoverview Rule to enforce description with the `Symbol` object * @author Jarek Rencz */ "use strict"; //------------------------------------------------------------------------------ // Requirements //------------------------------------------------------------------------------ const astUtils = require("./utils/ast-utils"); //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ /** @type {import('../shared/types').Rule} */ module.exports = { meta: { type: "suggestion", docs: { description: "Require symbol descriptions", recommended: false, url: "https://eslint.org/docs/latest/rules/symbol-description" }, fixable: null, schema: [], messages: { expected: "Expected Symbol to have a description." } }, create(context) { const sourceCode = context.sourceCode; /** * Reports if node does not conform the rule in case rule is set to * report missing description * @param {ASTNode} node A CallExpression node to check. * @returns {void} */ function checkArgument(node) { if (node.arguments.length === 0) { context.report({ node, messageId: "expected" }); } } return { "Program:exit"(node) { const scope = sourceCode.getScope(node); const variable = astUtils.getVariableByName(scope, "Symbol"); if (variable && variable.defs.length === 0) { variable.references.forEach(reference => { const idNode = reference.identifier; if (astUtils.isCallee(idNode)) { checkArgument(idNode.parent); } }); } } }; } };