Add dynamic ANSI buffer codes
This commit is contained in:
parent
2eb65f7c55
commit
9ea2787ba2
@ -88,6 +88,8 @@ export const ANSI_BUFFERS = {
|
||||
GET_CURSOR_POSITION: encoder.encode(ANSI.GET_CURSOR_POSITION),
|
||||
SAVE_CURSOR: encoder.encode(ANSI.SAVE_CURSOR),
|
||||
RESTORE_CURSOR: encoder.encode(ANSI.RESTORE_CURSOR),
|
||||
|
||||
// Screen Control
|
||||
CLEAR_SCREEN: encoder.encode(ANSI.CLEAR_SCREEN),
|
||||
CLEAR_LINE: encoder.encode(ANSI.CLEAR_LINE),
|
||||
CLEAR_TO_END: encoder.encode(ANSI.CLEAR_TO_END),
|
||||
@ -95,10 +97,19 @@ export const ANSI_BUFFERS = {
|
||||
CLEAR_BELOW: encoder.encode(ANSI.CLEAR_BELOW),
|
||||
};
|
||||
|
||||
export const ANSI_DYNAMIC = {
|
||||
// Cursor Control
|
||||
CURSOR_TO: (x: number, y: number) => encoder.encode(ANSI.CURSOR_TO(x, y)),
|
||||
CURSOR_UP: (x = 1) => encoder.encode(ANSI.CURSOR_UP(x)),
|
||||
CURSOR_DOWN: (x = 1) => encoder.encode(ANSI.CURSOR_DOWN(x)),
|
||||
CURSOR_FORWARD: (x = 1) => encoder.encode(ANSI.CURSOR_FORWARD(x)),
|
||||
CURSOR_BACK: (x = 1) => encoder.encode(ANSI.CURSOR_BACK(x)),
|
||||
};
|
||||
|
||||
type AnsiBufferKey = keyof typeof ANSI_BUFFERS;
|
||||
|
||||
export async function writeAnsi(
|
||||
codes: AnsiBufferKey[],
|
||||
codes: (AnsiBufferKey | Uint8Array)[],
|
||||
text?: string,
|
||||
autoReset: boolean = true
|
||||
): Promise<Result<number, Error>> {
|
||||
@ -106,7 +117,11 @@ export async function writeAnsi(
|
||||
|
||||
// Add requested ANSI codes
|
||||
for (const code of codes) {
|
||||
buffers.push(ANSI_BUFFERS[code]);
|
||||
if (code instanceof Uint8Array) {
|
||||
buffers.push(code);
|
||||
} else {
|
||||
buffers.push(ANSI_BUFFERS[code]);
|
||||
}
|
||||
}
|
||||
|
||||
// Add optional text
|
||||
|
||||
Loading…
Reference in New Issue
Block a user