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
}