Files
boc/services/frilans-payout/node_modules/loupe/lib/html.js
T
Bernt 1a12fb870b dev-api: add developer portal, OpenAPI spec, and Flatenbadet case study
- New /developers/ page with API docs, SDKs, pricing, use cases
- OpenAPI 3.0 spec for Orders, Missions, Photos, Analytics
- Case study: Glasskiosken i Flatenbadet — complete ROI analysis
- Updated /order/ with recurring missions and frequency dropdown
2026-07-14 15:27:33 +00:00

41 lines
1.4 KiB
JavaScript

import { truncator, inspectList } from './helpers'
export function inspectAttribute([key, value], options) {
options.truncate -= 3
if (!value) {
return `${options.stylize(key, 'yellow')}`
}
return `${options.stylize(key, 'yellow')}=${options.stylize(`"${value}"`, 'string')}`
}
export function inspectHTMLCollection(collection, options) {
// eslint-disable-next-line no-use-before-define
return inspectList(collection, options, inspectHTML, '\n')
}
export default function inspectHTML(element, options) {
const properties = element.getAttributeNames()
const name = element.tagName.toLowerCase()
const head = options.stylize(`<${name}`, 'special')
const headClose = options.stylize(`>`, 'special')
const tail = options.stylize(`</${name}>`, 'special')
options.truncate -= name.length * 2 + 5
let propertyContents = ''
if (properties.length > 0) {
propertyContents += ' '
propertyContents += inspectList(
properties.map(key => [key, element.getAttribute(key)]),
options,
inspectAttribute,
' '
)
}
options.truncate -= propertyContents.length
const truncate = options.truncate
let children = inspectHTMLCollection(element.children, options)
if (children && children.length > truncate) {
children = `${truncator}(${element.children.length})`
}
return `${head}${propertyContents}${headClose}${children}${tail}`
}