Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | 3x 3x 3x 3485x 3485x 3485x 3485x 3485x 1247x 3460x 2238x 2238x 3485x 3x 2367x 2367x 2367x 2367x 2367x 2367x 2082x 2082x 2082x 285x 2367x 1247x 1247x 1247x 1247x 1247x 1247x 1247x 170x 170x 62x 108x 53x 55x 1247x 1247x 1247x 1247x 1247x 1247x 1247x 1247x 1247x 2238x 2238x 2238x 2238x 2238x 2238x 2238x 2238x 2238x 2238x | import {
type TestComment,
type TestElement,
type TestNode,
TestNodeTypes,
type TestText,
} from './nodeOps'
import { isOn } from '@vue/shared'
export function serialize(
node: TestNode,
indent: number = 0,
depth: number = 0,
): string {
if (node.type === TestNodeTypes.ELEMENT) {
return serializeElement(node, indent, depth)
} else {
return serializeText(node, indent, depth)
}
}
export function serializeInner(
node: TestElement,
indent: number = 0,
depth: number = 0,
): string {
const newLine = indent ? `\n` : ``
return node.children.length
? newLine +
node.children.map(c => serialize(c, indent, depth + 1)).join(newLine) +
newLine
: ``
}
function serializeElement(
node: TestElement,
indent: number,
depth: number,
): string {
const props = Object.keys(node.props)
.map(key => {
const value = node.props[key]
return isOn(key) || value == null
? ``
: value === ``
? key
: `${key}=${JSON.stringify(value)}`
})
.filter(Boolean)
.join(' ')
const padding = indent ? ` `.repeat(indent).repeat(depth) : ``
return (
`${padding}<${node.tag}${props ? ` ${props}` : ``}>` +
`${serializeInner(node, indent, depth)}` +
`${padding}</${node.tag}>`
)
}
function serializeText(
node: TestText | TestComment,
indent: number,
depth: number,
): string {
const padding = indent ? ` `.repeat(indent).repeat(depth) : ``
return (
padding +
(node.type === TestNodeTypes.COMMENT ? `<!--${node.text}-->` : node.text)
)
}
|