Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit f49a2c3

Browse files
committed
[IMP] List,Pre,Table: simplify renderChildren usages
By leveraging `append` and `flat`.
1 parent 726c0fb commit f49a2c3

File tree

5 files changed

+8
-30
lines changed

5 files changed

+8
-30
lines changed

packages/plugin-list/src/ListHtmlDomRenderer.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,8 @@ export class ListHtmlDomRenderer extends AbstractRenderer<Node[]> {
1212
const tag = node.listType === ListType.ORDERED ? 'OL' : 'UL';
1313
const domListNode = document.createElement(tag);
1414
this.engine.renderAttributes(Attributes, node, domListNode);
15-
16-
for (const child of node.childVNodes) {
17-
const renderedChild = await this.engine.render(child);
18-
for (const domChild of renderedChild) {
19-
domListNode.appendChild(domChild);
20-
}
21-
}
22-
15+
const renderedChildren = await this.renderChildren(node);
16+
domListNode.append(...renderedChildren.flat());
2317
return [domListNode];
2418
}
2519
}

packages/plugin-list/src/ListItemHtmlDomRenderer.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,11 @@ export class ListItemHtmlDomRenderer extends AbstractRenderer<Node[]> {
2323
// while other nodes will be rendered inside the "LI".
2424
if (node.is(VElement) && node.htmlTag === 'P') {
2525
const renderedChildren = await this.renderChildren(node);
26-
for (const renderedChild of renderedChildren) {
27-
for (const domChild of renderedChild) {
28-
domListItem.appendChild(domChild);
29-
}
30-
}
26+
domListItem.append(...renderedChildren.flat());
3127
} else {
3228
// The node was wrapped in a "LI" but needs to be rendered as well.
3329
const renderedNode = await this.super.render(node);
34-
for (const domNode of renderedNode) {
35-
domListItem.appendChild(domNode);
36-
}
30+
domListItem.append(...renderedNode);
3731
}
3832
// Render the node's attributes that were stored on the technical key
3933
// that specifies those attributes belong on the list item.

packages/plugin-pre/src/PreHtmlDomRenderer.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,8 @@ export class PreHtmlDomRenderer extends AbstractRenderer<Node[]> {
1414
async render(node: PreNode): Promise<Node[]> {
1515
const pre = document.createElement('pre');
1616
this.engine.renderAttributes(Attributes, node, pre);
17-
for (const child of node.children()) {
18-
const domChildren = await this.renderChild(child);
19-
pre.append(...domChildren);
20-
}
17+
const renderedChildren = await this.renderChildren(node);
18+
pre.append(...renderedChildren.flat());
2119
return [pre];
2220
}
2321
}

packages/plugin-table/src/TableCellHtmlDomRenderer.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,7 @@ export class TableCellHtmlDomRenderer extends AbstractRenderer<Node[]> {
2121
// Render the cell and its contents.
2222
const td = document.createElement(cell.header ? 'th' : 'td');
2323
const renderedChildren = await this.renderChildren(cell);
24-
for (const renderedChild of renderedChildren) {
25-
for (const domChild of renderedChild) {
26-
td.append(domChild);
27-
}
28-
}
24+
td.append(...renderedChildren.flat());
2925

3026
// Render attributes.
3127
// Colspan and rowspan are handled differently from other attributes:

packages/plugin-table/src/TableRowHtmlDomRenderer.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,7 @@ export class TableRowHtmlDomRenderer extends AbstractRenderer<Node[]> {
1515
const domRow = document.createElement('tr');
1616
this.engine.renderAttributes(Attributes, row, domRow);
1717
const renderedChildren = await this.renderChildren(row);
18-
for (const renderedChild of renderedChildren) {
19-
for (const domChild of renderedChild) {
20-
domRow.appendChild(domChild);
21-
}
22-
}
18+
domRow.append(...renderedChildren.flat());
2319
return [domRow];
2420
}
2521
}

0 commit comments

Comments
 (0)