import fromFunction from './from-function'; import AbstractVirtualNode from '../../core/base/virtual-node/abstract-virtual-node'; import { getNodeFromTree } from '../../core/utils'; /** * Check if a virtual node matches some attribute(s) * * Note: matches.attributes(vNode, matcher) can be indirectly used through * matches(vNode, { attributes: matcher }) * * Example: * ```js * matches.attributes(vNode, { * 'aria-live': 'assertive', // Simple string match * 'aria-expanded': /true|false/i, // either boolean, case insensitive * }) * ``` * * @deprecated HTMLElement is deprecated, use VirtualNode instead * * @param {HTMLElement|VirtualNode} vNode * @param {Object} Attribute matcher * @returns {Boolean} */ function attributes(vNode, matcher) { if (!(vNode instanceof AbstractVirtualNode)) { vNode = getNodeFromTree(vNode); } return fromFunction(attrName => vNode.attr(attrName), matcher); } export default attributes;