UNPKG

eslint-plugin-react-form-fields

Version:
31 lines (30 loc) 1.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.propertyToJSXAttribute = void 0; const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); const getBaseNode = ({ type, loc, range, }) => { return { type, loc, range, }; }; const propertyToJSXAttribute = (node) => { const { key, value } = node; return Object.assign(Object.assign({}, getBaseNode(node)), { type: experimental_utils_1.AST_NODE_TYPES.JSXAttribute, name: Object.assign(Object.assign({}, getBaseNode(key)), { type: experimental_utils_1.AST_NODE_TYPES.JSXIdentifier, name: key.type === experimental_utils_1.AST_NODE_TYPES.Identifier ? key.name : key.type === experimental_utils_1.AST_NODE_TYPES.Literal ? typeof key.value === 'string' ? key.value : '' : '' }), value: value.type === experimental_utils_1.AST_NODE_TYPES.AssignmentPattern || value.type === experimental_utils_1.AST_NODE_TYPES.ArrayPattern || value.type === experimental_utils_1.AST_NODE_TYPES.ObjectPattern || value.type === experimental_utils_1.AST_NODE_TYPES.Identifier || value.type === experimental_utils_1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression ? null : value.type === experimental_utils_1.AST_NODE_TYPES.Literal ? value : Object.assign(Object.assign({}, getBaseNode(value)), { type: experimental_utils_1.AST_NODE_TYPES.JSXExpressionContainer, expression: value }) }); }; exports.propertyToJSXAttribute = propertyToJSXAttribute;