UNPKG

eslint-plugin-playlyfe

Version:
64 lines (52 loc) 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findObjectExpressionProperty = findObjectExpressionProperty; exports.getStringNodeValue = getStringNodeValue; exports.getTemplateLiteralStringValue = getTemplateLiteralStringValue; exports.findJSXAttribute = findJSXAttribute; exports.getJSXAttributeValue = getJSXAttributeValue; exports.getObjectIdentifierKeys = getObjectIdentifierKeys; function findObjectExpressionProperty(node, key) { return node.properties.find(property => property.type === 'Property' && property.key.type === 'Identifier' && property.key.name === key); } function getStringNodeValue(node) { if (node.type === 'Literal') { return { value: node.value, loc: node.loc }; } if (node.type === 'TemplateLiteral') { return getTemplateLiteralStringValue(node); } return null; } function getTemplateLiteralStringValue(node) { const [templateElem] = node.quasis; return templateElem ? { value: templateElem.value.raw, loc: templateElem.loc } : null; } function findJSXAttribute(node, name) { return node.attributes.find(attr => attr.type === 'JSXAttribute' && attr.name.name === name); } function getJSXAttributeValue(node) { const { value } = node; if (value.type === 'JSXExpressionContainer') { return value.expression; } return value; } function getObjectIdentifierKeys(node) { return node.properties.reduce((acc, property) => { if (property.type === 'Property' && property.key.type === 'Identifier') { acc.push(property.key); } return acc; }, []); }