UNPKG

@serenity-js/core

Version:

The core Serenity/JS framework, providing the Screenplay Pattern interfaces, as well as the test reporting and integration infrastructure

43 lines (36 loc) 1.42 kB
import type { Chalk, Options } from 'chalk'; // eslint-disable-line unicorn/import-style import { Instance as ChalkInstance } from 'chalk'; // eslint-disable-line unicorn/import-style import type { DiffFormatter } from './DiffFormatter'; /** * A [`DiffFormatter`](https://serenity-js.org/api/core/interface/DiffFormatter/) that uses [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) * to format the output. * * @group Errors */ export class AnsiDiffFormatter implements DiffFormatter { private readonly chalk: Chalk; /** * Instantiates an `AnsiDiffFormatter`, configured with colour support options for [Chalk](https://github.com/chalk/chalk). * When no `chalkOptions` object is provided, Chalk will auto-detect colour support automatically based on the execution environment. * * Available colour support levels: * - `0` - All colours disabled. * - `1` - Basic 16 colours support. * - `2` - ANSI 256 colours support. * - `3` - Truecolor - 16 million colours support. * * @param chalkOptions */ constructor(chalkOptions?: Options) { this.chalk = new ChalkInstance(chalkOptions); } expected(line: string): string { return this.chalk.green(line); } received(line: string): string { return this.chalk.red(line); } unchanged(line: string): string { return line; } }