Sha256: ac45a2971c8956d0726c681c559f7dccf3f6d053132cfe273c1ef7777a6a6d8a

Contents?: true

Size: 750 Bytes

Versions: 43

Compression:

Stored size: 750 Bytes

Contents

/**
 * @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
};

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
govuk_publishing_components-18.0.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.21.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.20.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.19.1 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.19.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.18.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.17.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.16.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.15.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.14.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.13.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.12.2 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.12.1 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.12.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.11.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.10.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.9.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.8.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.7.0 node_modules/eslint-plugin-react/lib/util/jsx.js
govuk_publishing_components-17.6.1 node_modules/eslint-plugin-react/lib/util/jsx.js