node/benchmark/util/strip-vt-control-characters.js
Hiroki Osame febcecdaaf
util: add fast path to stripVTControlCharacters
PR-URL: https://github.com/nodejs/node/pull/61833
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2026-02-24 19:30:35 +00:00

36 lines
909 B
JavaScript

'use strict';
const common = require('../common.js');
const { stripVTControlCharacters } = require('node:util');
const assert = require('node:assert');
const bench = common.createBenchmark(main, {
input: ['noAnsi-short', 'noAnsi-long', 'ansi-short', 'ansi-long'],
n: [1e6],
});
function main({ input, n }) {
let str;
switch (input) {
case 'noAnsi-short':
str = 'This is a plain text string without any ANSI codes';
break;
case 'noAnsi-long':
str = 'Long plain text without ANSI. '.repeat(333);
break;
case 'ansi-short':
str = '\u001B[31mHello\u001B[39m';
break;
case 'ansi-long':
str = ('\u001B[31m' + 'colored text '.repeat(10) + '\u001B[39m').repeat(10);
break;
}
bench.start();
for (let i = 0; i < n; i++) {
const result = stripVTControlCharacters(str);
assert.ok(typeof result === 'string');
}
bench.end(n);
}