UNPKG

eslint-plugin-playlyfe

Version:
55 lines (40 loc) 1.48 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var icu = _interopRequireWildcard(require("./utils/icu")); var astUtils = _interopRequireWildcard(require("./utils/astUtils")); var _reactIntlVisitor = _interopRequireDefault(require("./utils/reactIntlVisitor")); const Rule = { meta: { docs: { description: 'enforces message args values to be defined with the message' } }, create(context) { return (0, _reactIntlVisitor.default)({ defineMessages(node) { node.properties.forEach(property => { if (property.value.type !== 'ObjectExpression') { return; } const defaultMessageNode = astUtils.findObjectExpressionProperty(property.value, 'defaultMessage'); if (!defaultMessageNode) { return; } const messageNode = astUtils.getStringNodeValue(defaultMessageNode.value); if (!messageNode) { return; } const message = icu.getMessageArguments(messageNode.value); if (message.args.length > 0) { context.report({ node: property.key, message: 'Use FormattedMessage/formatMessage instead of defineMessages for intl message containing args.' }); } }); } }); } }; module.exports = Rule;