Skip to content

Commit bee5dd9

Browse files
committed
Refactor to improve bundle size
1 parent 16dbae7 commit bee5dd9

File tree

1 file changed

+19
-33
lines changed

1 file changed

+19
-33
lines changed

index.js

Lines changed: 19 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,22 @@ var parseOptions = {
2626

2727
function wrap(tree, file) {
2828
var parser = new Parser(parseOptions)
29-
var one = zwitch('type')
29+
var one = zwitch('type', {
30+
handlers: {
31+
root: root,
32+
element: element,
33+
text: text,
34+
comment: comment,
35+
doctype: doctype,
36+
raw: raw
37+
},
38+
unknown: unknown
39+
})
3040
var tokenizer
3141
var preprocessor
3242
var posTracker
3343
var locationTracker
34-
var result
35-
36-
one.handlers.root = root
37-
one.handlers.element = element
38-
one.handlers.text = text
39-
one.handlers.comment = comment
40-
one.handlers.doctype = doctype
41-
one.handlers.raw = raw
42-
one.unknown = unknown
43-
44-
result = fromParse5(documentMode(tree) ? document() : fragment(), file)
44+
var result = fromParse5(documentMode(tree) ? document() : fragment(), file)
4545

4646
// Unpack if possible and when not given a `root`.
4747
if (tree.type !== 'root' && result.children.length === 1) {
@@ -51,30 +51,21 @@ function wrap(tree, file) {
5151
return result
5252

5353
function fragment() {
54-
var context
55-
var mock
56-
var doc
57-
58-
context = {
54+
var context = {
5955
nodeName: 'template',
6056
tagName: 'template',
6157
attrs: [],
6258
namespaceURI: ns.html,
6359
childNodes: []
6460
}
65-
66-
mock = {
61+
var mock = {
6762
nodeName: 'documentmock',
6863
tagName: 'documentmock',
6964
attrs: [],
7065
namespaceURI: ns.html,
7166
childNodes: []
7267
}
73-
74-
doc = {
75-
nodeName: '#document-fragment',
76-
childNodes: []
77-
}
68+
var doc = {nodeName: '#document-fragment', childNodes: []}
7869

7970
parser._bootstrap(mock, context)
8071
parser._pushTmplInsertionMode(inTemplateMode)
@@ -110,16 +101,13 @@ function wrap(tree, file) {
110101
}
111102

112103
function all(nodes) {
113-
var length = 0
114104
var index = -1
115105

116106
/* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */
117107
if (nodes) {
118-
length = nodes.length
119-
}
120-
121-
while (++index < length) {
122-
one(nodes[index])
108+
while (++index < nodes.length) {
109+
one(nodes[index])
110+
}
123111
}
124112
}
125113

@@ -128,14 +116,12 @@ function wrap(tree, file) {
128116
}
129117

130118
function element(node) {
131-
var empty = voids.indexOf(node.tagName) !== -1
132-
133119
resetTokenizer()
134120
parser._processToken(startTag(node), ns.html)
135121

136122
all(node.children)
137123

138-
if (!empty) {
124+
if (voids.indexOf(node.tagName) < 0) {
139125
resetTokenizer()
140126
parser._processToken(endTag(node))
141127
}

0 commit comments

Comments
 (0)