Home > @rushstack/terminal > TextRewriterState

TextRewriterState type

Represents the internal state of a TextRewriter subclass.


export declare type TextRewriterState = Brand<unknown, 'TextRewriterState'>;


For example, suppose that NormalizeNewlinesTextRewriter will be used to rewrite the input "line 1\r\nline 2\r\n" to become "line 1\nline 2\n". But suppose that the "\r\n" pair is split across two chunks:

const rewriter: NormalizeNewlinesTextRewriter = new NormalizeNewlinesTextRewriter(NewlineKind.Lf);
const state: TextRewriterState = rewriter.initialize();
let output: string = rewriter.process(state, 'line 1\r');
output += rewriter.process(state, '\nline 2\r\n');
output += rewriter.close(state);

// The final "output" value is: "line 1\nline 2\n"

The TextRewriterState keeps track of this context, so that split "\r" and "\n" are interpreted as a single newline.