import each from 'licia/each' import isStr from 'licia/isStr' import isShadowRoot from 'licia/isShadowRoot' import { classPrefix as c } from '../lib/util' export function formatNodeName(node, { noAttr = false } = {}) { if (node.nodeType === Node.TEXT_NODE) { return `(text)` } else if (node.nodeType === Node.COMMENT_NODE) { return `` } else if (isShadowRoot(node)) { return `#shadow-root` } const { id, className, attributes } = node let ret = `${node.tagName.toLowerCase()}` if (id !== '') ret += `#${id}` if (isStr(className)) { let classes = '' each(className.split(/\s+/g), (val) => { if (val.trim() === '') return classes += `.${val}` }) ret += `${classes}` } if (!noAttr) { each(attributes, (attr) => { const name = attr.name if (name === 'id' || name === 'class' || name === 'style') return ret += ` ${name}="${attr.value}"` }) } return ret }