Skip to content

Commit 433ad7b

Browse files
committed
Avoid string concatenation for rows TableStringWriter and use arrays instead
1 parent 667be58 commit 433ad7b

1 file changed

Lines changed: 18 additions & 18 deletions

File tree

src/writers/tableStringWriter.ts

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,36 +14,36 @@ export class TableStringWriter {
1414
if (table.rows == null) throw new Error("Table rows can't be null.");
1515
if (table.columnCount == 0) throw new Error("Table must have at least one column.");
1616

17-
let buffer = "";
18-
buffer += this.writeRowViewModel(table.header, table, true);
19-
buffer += this.writeRowViewModel(table.separator, table, table.rowCount > 0);
20-
buffer += this.writeRows(table);
17+
const buffer: string[] = [];
18+
buffer.push(this.writeRowViewModel(table.header, table, true));
19+
buffer.push(this.writeRowViewModel(table.separator, table, table.rowCount > 0));
20+
buffer.push(this.writeRows(table));
2121

22-
return buffer;
22+
return buffer.join('');
2323
}
2424

2525
private writeRows(table: TableViewModel): string {
26-
let buffer = "";
26+
const buffer: string[] = [];
2727
for (let row = 0; row < table.rowCount; row++) {
28-
buffer += this.writeRowViewModel(table.rows[row], table, row != table.rowCount - 1);
28+
buffer.push(this.writeRowViewModel(table.rows[row], table, row != table.rowCount - 1));
2929
}
30-
return buffer;
30+
return buffer.join('');
3131
}
3232

3333
private writeRowViewModel(row: RowViewModel, table: TableViewModel, addEndOfLine: boolean): string {
34-
let buffer = "";
35-
buffer += table.leftPad;
36-
buffer += this.getLeftBorderIfNeeded(table);
34+
const buffer: string[] = [];
35+
buffer.push(table.leftPad);
36+
buffer.push(this.getLeftBorderIfNeeded(table));
3737
for (let col = 0; col < table.columnCount; col++) {
38-
buffer += this._valuePaddingProvider.getLeftPadding();
39-
buffer += row.getValueAt(col);
40-
buffer += this._valuePaddingProvider.getRightPadding(table, col);
41-
buffer += this.getSeparatorIfNeeded(table, col);
38+
buffer.push(this._valuePaddingProvider.getLeftPadding());
39+
buffer.push(row.getValueAt(col));
40+
buffer.push(this._valuePaddingProvider.getRightPadding(table, col));
41+
buffer.push(this.getSeparatorIfNeeded(table, col));
4242
}
43-
buffer += this.getRightBorderIfNeeded(table);
43+
buffer.push(this.getRightBorderIfNeeded(table));
4444
if (addEndOfLine)
45-
buffer += row.EOL;
46-
return buffer;
45+
buffer.push(row.EOL);
46+
return buffer.join('');
4747
}
4848

4949
private getSeparatorIfNeeded(table: TableViewModel, currentColumn: number): string {

0 commit comments

Comments
 (0)