UNPKG

eslint-plugin-playlyfe

Version:
111 lines (89 loc) 3.19 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = reactIntlVisitor; var astUtils = _interopRequireWildcard(require("./astUtils")); function reactIntlVisitor(visitNodes) { return Object.assign({}, visitNodes.FormattedMessage || visitNodes.defaultMessageJSXAttr ? { JSXOpeningElement(node) { if (node.name && node.name.name !== 'FormattedMessage') { return; } const { FormattedMessage, defaultMessageJSXAttr } = visitNodes; if (FormattedMessage) { FormattedMessage(node, { id: astUtils.findJSXAttribute(node, 'id'), defaultMessage: astUtils.findJSXAttribute(node, 'defaultMessage'), values: astUtils.findJSXAttribute(node, 'values') }); } if (defaultMessageJSXAttr) { const attrNode = astUtils.findJSXAttribute(node, 'defaultMessage'); if (attrNode) { defaultMessageJSXAttr(attrNode); } } } } : {}, {}, visitNodes.defaultMessageProperty || visitNodes.formatMessage ? { MemberExpression(node) { if (!(node.property && node.property.name === 'formatMessage' && node.parent.type === 'CallExpression')) { return; } const [definitionArg, valuesArg] = node.parent.arguments; if (!definitionArg || definitionArg.type !== 'ObjectExpression') { return; } if (visitNodes.formatMessage) { const { formatMessage } = visitNodes; formatMessage(node.property, { id: astUtils.findObjectExpressionProperty(definitionArg, 'id'), defaultMessage: astUtils.findObjectExpressionProperty(definitionArg, 'defaultMessage'), values: valuesArg }); } if (visitNodes.defaultMessageProperty) { const { defaultMessageProperty } = visitNodes; const defaultMessageNode = astUtils.findObjectExpressionProperty(definitionArg, 'defaultMessage'); if (defaultMessageNode) { defaultMessageProperty(defaultMessageNode); } } } } : {}, {}, visitNodes.defineMessages || visitNodes.defaultMessageProperty ? { CallExpression(node) { if (!(node.callee && node.callee.type === 'Identifier' && node.callee.name === 'defineMessages')) { return; } const [valueNode] = node.arguments; if (!valueNode || valueNode.type !== 'ObjectExpression') { return; } if (visitNodes.defineMessages) { visitNodes.defineMessages(valueNode); } if (visitNodes.defaultMessageProperty) { const { defaultMessageProperty } = visitNodes; valueNode.properties.forEach(property => { if (property.value.type !== 'ObjectExpression') { return; } const defaultMessageNode = astUtils.findObjectExpressionProperty(property.value, 'defaultMessage'); if (defaultMessageNode) { defaultMessageProperty(defaultMessageNode); } }); } } } : {}); }