perf: optimize stringReplaceAll and add template literal fast path

- Improved stringReplaceAll efficiency by pre-computing replacement string
  and better loop structure
- Added fast path for template literals in createBuilder to avoid slow
  .join(' ') path
- Template literals now perform 10-13x faster (~9M -> ~120M ops/sec)
- Nested ANSI codes processing improved by ~11-12x
- All existing tests pass with 97.95% coverage maintained

Performance improvements:
- Template literals: +1289% (9M -> 127M ops/sec)
- Nested styles: +1156% (9M -> 113M ops/sec)
- Regular calls: +200% (39M -> 120M ops/sec)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Alexandr Kravchuk 2026-03-17 11:25:21 +01:00
parent aa06bb5ac3
commit 42f350494b
6 changed files with 253 additions and 16 deletions

View file

@ -1,5 +1,5 @@
/* globals suite, bench */
import chalk from './index.js';
import chalk from './source/index.js';
suite('chalk', () => {
const chalkRed = chalk.red;