UNPKG

astx

Version:

super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring

121 lines (103 loc) 3.12 kB
'use strict' var _typeof = require('@babel/runtime/helpers/typeof') Object.defineProperty(exports, '__esModule', { value: true, }) exports['default'] = compileJSXIdentifierMatcher var _Placeholder = _interopRequireWildcard(require('./Placeholder')) function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== 'function') return null var cacheBabelInterop = new WeakMap() var cacheNodeInterop = new WeakMap() return (_getRequireWildcardCache = function _getRequireWildcardCache( nodeInterop ) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop })(nodeInterop) } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj } if ( obj === null || (_typeof(obj) !== 'object' && typeof obj !== 'function') ) { return { default: obj, } } var cache = _getRequireWildcardCache(nodeInterop) if (cache && cache.has(obj)) { return cache.get(obj) } var newObj = {} var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor for (var key in obj) { if (key !== 'default' && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc) } else { newObj[key] = obj[key] } } } newObj['default'] = obj if (cache) { cache.set(obj, newObj) } return newObj } function compileJSXIdentifierMatcher(path, compileOptions) { var pattern = path.value var n = compileOptions.backend.t.namedTypes var placeholderMatcher = (0, _Placeholder['default'])( path, pattern.name, compileOptions, { nodeType: 'JSXIdentifier', getCondition: function getCondition() { return [ function isJSXElementName(path) { var _path$parent return ( n.JSXOpeningElement.check( (_path$parent = path.parent) === null || _path$parent === void 0 ? void 0 : _path$parent.value ) && path.name === 'name' ) }, function isJSXAttributeName(path) { var _path$parent2 return ( n.JSXAttribute.check( (_path$parent2 = path.parent) === null || _path$parent2 === void 0 ? void 0 : _path$parent2.value ) && path.name === 'name' ) }, function isJSXSpreadAttribute(path) { var _path$parent3 return n.JSXSpreadAttribute.check( (_path$parent3 = path.parent) === null || _path$parent3 === void 0 ? void 0 : _path$parent3.value ) }, ].find(function (c) { return c(path) }) }, } ) if (placeholderMatcher) return placeholderMatcher pattern.name = (0, _Placeholder.unescapeIdentifier)(pattern.name) }