|
- /**
- * @fileoverview Utility functions for JSX
- */
- 'use strict';
-
- const elementType = require('jsx-ast-utils/elementType');
-
- const COMPAT_TAG_REGEX = /^[a-z]|\-/;
-
- /**
- * Checks if a node represents a DOM element.
- * @param {String} node - JSXOpeningElement to check.
- * @returns {boolean} Whether or not the node corresponds to a DOM element.
- */
- function isDOMComponent(node) {
- let name = elementType(node);
-
- // Get namespace if the type is JSXNamespacedName or JSXMemberExpression
- if (name.indexOf(':') > -1) {
- name = name.slice(0, name.indexOf(':'));
- } else if (name.indexOf('.') > -1) {
- name = name.slice(0, name.indexOf('.'));
- }
-
- return COMPAT_TAG_REGEX.test(name);
- }
-
- module.exports = {
- isDOMComponent: isDOMComponent
- };
|