UNPKG

eslint-plugin-deprecate-classnames

Version:
62 lines (61 loc) 1.63 kB
"use strict"; var ClassNameChecker = require('../utils/classNameChecker'); var _require = require('../utils/extractClassNames'), extractClassNamesFromClasses = _require.extractClassNamesFromClasses; module.exports = { meta: { docs: { description: 'Disallow usage of deprecated classNames in "classes" attribute', category: 'Best Practices', recommended: true }, schema: { type: 'array', items: { type: 'object', properties: { name: { type: 'string' }, nameRegExp: { type: ['string', 'object'] }, names: { type: 'array', items: { type: 'string' } }, use: { type: 'string' } }, additionalProperties: false } } }, create: function create(context) { var rules = context.options.map(function (option) { return new ClassNameChecker(option); }); return { JSXAttribute: function JSXAttribute(node) { if (node.name.name === 'classes') { var classNames = extractClassNamesFromClasses(node); classNames.forEach(function (className) { rules.forEach(function (rule) { var errors = rule.check([className]); errors.forEach(function (_ref) { var message = _ref.message; return context.report({ node: node, message: message }); }); }); }); } } }; } };