@jrichman/ink 6.4.1 → 6.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.d.ts +1 -1
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/ink.d.ts +4 -0
- package/build/ink.js +32 -6
- package/build/ink.js.map +1 -1
- package/build/log-update.d.ts +6 -2
- package/build/log-update.js +298 -35
- package/build/log-update.js.map +1 -1
- package/build/measure-element.d.ts +42 -0
- package/build/measure-element.js +122 -0
- package/build/measure-element.js.map +1 -1
- package/build/output.d.ts +1 -0
- package/build/output.js +1 -0
- package/build/output.js.map +1 -1
- package/build/render-node-to-output.js +18 -74
- package/build/render-node-to-output.js.map +1 -1
- package/build/render.d.ts +22 -0
- package/build/render.js +2 -0
- package/build/render.js.map +1 -1
- package/build/renderer.d.ts +2 -0
- package/build/renderer.js +4 -1
- package/build/renderer.js.map +1 -1
- package/build/wrap-text.d.ts +6 -0
- package/build/wrap-text.js +120 -0
- package/build/wrap-text.js.map +1 -0
- package/package.json +1 -1
- package/readme.md +8 -0
package/build/index.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export { default as useStderr } from './hooks/use-stderr.js';
|
|
|
24
24
|
export { default as useFocus } from './hooks/use-focus.js';
|
|
25
25
|
export { default as useFocusManager } from './hooks/use-focus-manager.js';
|
|
26
26
|
export { default as useIsScreenReaderEnabled } from './hooks/use-is-screen-reader-enabled.js';
|
|
27
|
-
export { default as measureElement, getBoundingBox, getInnerWidth, getInnerHeight, } from './measure-element.js';
|
|
27
|
+
export { default as measureElement, getBoundingBox, getInnerWidth, getInnerHeight, getVerticalScrollbarBoundingBox, getHorizontalScrollbarBoundingBox, type ScrollbarBoundingBox, } from './measure-element.js';
|
|
28
28
|
export { getScrollHeight, getScrollWidth } from './scroll.js';
|
|
29
29
|
export { clearStringWidthCache, setStringWidthFunction } from './measure-text.js';
|
|
30
30
|
export type { DOMElement } from './dom.js';
|
package/build/index.js
CHANGED
|
@@ -13,7 +13,7 @@ export { default as useStderr } from './hooks/use-stderr.js';
|
|
|
13
13
|
export { default as useFocus } from './hooks/use-focus.js';
|
|
14
14
|
export { default as useFocusManager } from './hooks/use-focus-manager.js';
|
|
15
15
|
export { default as useIsScreenReaderEnabled } from './hooks/use-is-screen-reader-enabled.js';
|
|
16
|
-
export { default as measureElement, getBoundingBox, getInnerWidth, getInnerHeight, } from './measure-element.js';
|
|
16
|
+
export { default as measureElement, getBoundingBox, getInnerWidth, getInnerHeight, getVerticalScrollbarBoundingBox, getHorizontalScrollbarBoundingBox, } from './measure-element.js';
|
|
17
17
|
export { getScrollHeight, getScrollWidth } from './scroll.js';
|
|
18
18
|
export { clearStringWidthCache, setStringWidthFunction } from './measure-text.js';
|
|
19
19
|
export { default as ResizeObserver, ResizeObserverEntry, } from './resize-observer.js';
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAC,OAAO,IAAI,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,sBAAsB,CAAC;AAMrD,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAC,OAAO,IAAI,wBAAwB,EAAC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EACN,OAAO,IAAI,cAAc,EACzB,cAAc,EACd,aAAa,EACb,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAC,OAAO,IAAI,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,sBAAsB,CAAC;AAMrD,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAC,OAAO,IAAI,wBAAwB,EAAC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EACN,OAAO,IAAI,cAAc,EACzB,cAAc,EACd,aAAa,EACb,cAAc,EACd,+BAA+B,EAC/B,iCAAiC,GAEjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,eAAe,EAAE,cAAc,EAAC,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAC,qBAAqB,EAAE,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAEhF,OAAO,EACN,OAAO,IAAI,cAAc,EACzB,mBAAmB,GACnB,MAAM,sBAAsB,CAAC"}
|
package/build/ink.d.ts
CHANGED
|
@@ -22,6 +22,9 @@ export type Options = {
|
|
|
22
22
|
waitUntilExit?: () => Promise<void>;
|
|
23
23
|
maxFps?: number;
|
|
24
24
|
alternateBuffer?: boolean;
|
|
25
|
+
alternateBufferAlreadyActive?: boolean;
|
|
26
|
+
incrementalRendering?: boolean;
|
|
27
|
+
debugRainbow?: boolean;
|
|
25
28
|
};
|
|
26
29
|
export default class Ink {
|
|
27
30
|
private readonly options;
|
|
@@ -37,6 +40,7 @@ export default class Ink {
|
|
|
37
40
|
private exitPromise?;
|
|
38
41
|
private restoreConsole?;
|
|
39
42
|
private readonly unsubscribeResize?;
|
|
43
|
+
private frameIndex;
|
|
40
44
|
constructor(options: Options);
|
|
41
45
|
resized: () => void;
|
|
42
46
|
resolveExitPromise: () => void;
|
package/build/ink.js
CHANGED
|
@@ -20,6 +20,23 @@ import { calculateScroll } from './scroll.js';
|
|
|
20
20
|
// eslint-disable-next-line @typescript-eslint/consistent-type-imports
|
|
21
21
|
import { ResizeObserverEntry } from './resize-observer.js';
|
|
22
22
|
const noop = () => { };
|
|
23
|
+
const rainbowColors = [
|
|
24
|
+
'red',
|
|
25
|
+
'green',
|
|
26
|
+
'yellow',
|
|
27
|
+
'blue',
|
|
28
|
+
'magenta',
|
|
29
|
+
'cyan',
|
|
30
|
+
'white',
|
|
31
|
+
'blackBright',
|
|
32
|
+
'redBright',
|
|
33
|
+
'greenBright',
|
|
34
|
+
'yellowBright',
|
|
35
|
+
'blueBright',
|
|
36
|
+
'magentaBright',
|
|
37
|
+
'cyanBright',
|
|
38
|
+
'whiteBright',
|
|
39
|
+
];
|
|
23
40
|
export default class Ink {
|
|
24
41
|
options;
|
|
25
42
|
log;
|
|
@@ -37,6 +54,7 @@ export default class Ink {
|
|
|
37
54
|
exitPromise;
|
|
38
55
|
restoreConsole;
|
|
39
56
|
unsubscribeResize;
|
|
57
|
+
frameIndex = 0;
|
|
40
58
|
constructor(options) {
|
|
41
59
|
autoBind(this);
|
|
42
60
|
this.options = options;
|
|
@@ -57,7 +75,10 @@ export default class Ink {
|
|
|
57
75
|
this.rootNode.onImmediateRender = this.onRender;
|
|
58
76
|
this.log = logUpdate.create(options.stdout, {
|
|
59
77
|
alternateBuffer: options.alternateBuffer,
|
|
78
|
+
alternateBufferAlreadyActive: options.alternateBufferAlreadyActive,
|
|
60
79
|
getRows: () => options.stdout.rows,
|
|
80
|
+
getColumns: () => options.stdout.columns,
|
|
81
|
+
incremental: options.incrementalRendering,
|
|
61
82
|
});
|
|
62
83
|
this.throttledLog = unthrottled
|
|
63
84
|
? this.log
|
|
@@ -156,7 +177,12 @@ export default class Ink {
|
|
|
156
177
|
return;
|
|
157
178
|
}
|
|
158
179
|
const startTime = performance.now();
|
|
159
|
-
|
|
180
|
+
let debugRainbowColor;
|
|
181
|
+
if (this.options.debugRainbow) {
|
|
182
|
+
debugRainbowColor = rainbowColors[this.frameIndex % rainbowColors.length];
|
|
183
|
+
this.frameIndex++;
|
|
184
|
+
}
|
|
185
|
+
const { output, outputHeight, staticOutput, styledOutput } = render(this.rootNode, this.isScreenReaderEnabled);
|
|
160
186
|
this.options.onRender?.({ renderTime: performance.now() - startTime });
|
|
161
187
|
// If <Static> output isn't empty, it means new children have been added to it
|
|
162
188
|
const hasStaticOutput = staticOutput && staticOutput !== '\n';
|
|
@@ -179,7 +205,7 @@ export default class Ink {
|
|
|
179
205
|
if (hasStaticOutput) {
|
|
180
206
|
this.fullStaticOutput += staticOutput;
|
|
181
207
|
}
|
|
182
|
-
this.log(this.fullStaticOutput + output);
|
|
208
|
+
this.log(this.fullStaticOutput + output, styledOutput, debugRainbowColor);
|
|
183
209
|
this.lastOutput = output;
|
|
184
210
|
return;
|
|
185
211
|
}
|
|
@@ -230,10 +256,10 @@ export default class Ink {
|
|
|
230
256
|
if (hasStaticOutput) {
|
|
231
257
|
this.log.clear();
|
|
232
258
|
this.options.stdout.write(staticOutput);
|
|
233
|
-
this.log(output);
|
|
259
|
+
this.log(output, styledOutput, debugRainbowColor);
|
|
234
260
|
}
|
|
235
261
|
if (!hasStaticOutput && output !== this.lastOutput) {
|
|
236
|
-
this.throttledLog(output);
|
|
262
|
+
this.throttledLog(output, styledOutput, debugRainbowColor);
|
|
237
263
|
}
|
|
238
264
|
this.lastOutput = output;
|
|
239
265
|
this.lastOutputHeight = outputHeight;
|
|
@@ -267,7 +293,7 @@ export default class Ink {
|
|
|
267
293
|
}
|
|
268
294
|
this.log.clear();
|
|
269
295
|
this.options.stdout.write(data);
|
|
270
|
-
this.log(this.lastOutput);
|
|
296
|
+
this.log(this.lastOutput, []);
|
|
271
297
|
}
|
|
272
298
|
writeToStderr(data) {
|
|
273
299
|
if (this.isUnmounted) {
|
|
@@ -284,7 +310,7 @@ export default class Ink {
|
|
|
284
310
|
}
|
|
285
311
|
this.log.clear();
|
|
286
312
|
this.options.stderr.write(data);
|
|
287
|
-
this.log(this.lastOutput);
|
|
313
|
+
this.log(this.lastOutput, []);
|
|
288
314
|
}
|
|
289
315
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
290
316
|
unmount(error) {
|
package/build/ink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ink.js","sourceRoot":"","sources":["../src/ink.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ink.js","sourceRoot":"","sources":["../src/ink.tsx"],"names":[],"mappings":"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"}
|
package/build/log-update.d.ts
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { type Writable } from 'node:stream';
|
|
2
|
+
import { type StyledChar } from '@alcalzone/ansi-tokenize';
|
|
2
3
|
export type LogUpdate = {
|
|
3
4
|
clear: () => void;
|
|
4
5
|
done: () => void;
|
|
5
6
|
sync: (str: string) => void;
|
|
6
|
-
(str: string): void;
|
|
7
|
+
(str: string, styledOutput: StyledChar[][], debugRainbowColor?: string): void;
|
|
7
8
|
};
|
|
8
9
|
declare const logUpdate: {
|
|
9
|
-
create: (stream: Writable, { showCursor, alternateBuffer, getRows, }?: {
|
|
10
|
+
create: (stream: Writable, { showCursor, alternateBuffer, alternateBufferAlreadyActive, incremental, getRows, getColumns, }?: {
|
|
10
11
|
showCursor?: boolean;
|
|
11
12
|
alternateBuffer?: boolean;
|
|
13
|
+
alternateBufferAlreadyActive?: boolean;
|
|
14
|
+
incremental?: boolean;
|
|
12
15
|
getRows?: () => number;
|
|
16
|
+
getColumns?: () => number;
|
|
13
17
|
}) => LogUpdate;
|
|
14
18
|
};
|
|
15
19
|
export default logUpdate;
|
package/build/log-update.js
CHANGED
|
@@ -1,74 +1,126 @@
|
|
|
1
1
|
import process from 'node:process';
|
|
2
2
|
import ansiEscapes from 'ansi-escapes';
|
|
3
3
|
import cliCursor from 'cli-cursor';
|
|
4
|
+
import colorize from './colorize.js';
|
|
5
|
+
// Debugging option to simulate flicker if for terminals that do not support enableSynchronizedOutput.
|
|
6
|
+
const enableSynchronizedOutput = true;
|
|
4
7
|
const enterSynchronizedOutput = '\u001B[?2026h';
|
|
5
8
|
const exitSynchronizedOutput = '\u001B[?2026l';
|
|
6
|
-
const
|
|
9
|
+
const enterAlternateBuffer = (stream, alreadyActive) => {
|
|
10
|
+
if (!alreadyActive) {
|
|
11
|
+
stream.write(ansiEscapes.enterAlternativeScreen);
|
|
12
|
+
}
|
|
13
|
+
stream.write('\u001B[?7l');
|
|
14
|
+
};
|
|
15
|
+
const exitAlternateBuffer = (stream, lastFrame) => {
|
|
16
|
+
stream.write('\u001B[?7h');
|
|
17
|
+
stream.write(ansiEscapes.exitAlternativeScreen);
|
|
18
|
+
// The last frame was rendered to the alternate buffer.
|
|
19
|
+
// We need to render it again to the main buffer. If apps do not
|
|
20
|
+
// want this behavior, they can make sure the last frame is empty
|
|
21
|
+
// before unmounting.
|
|
22
|
+
stream.write(lastFrame);
|
|
23
|
+
};
|
|
24
|
+
const clearAlternateBuffer = (stream) => {
|
|
25
|
+
const eraseOperation = process.env['TERM_PROGRAM'] === 'iTerm.app'
|
|
26
|
+
? ansiEscapes.clearTerminal
|
|
27
|
+
: ansiEscapes.eraseScreen;
|
|
28
|
+
stream.write(eraseOperation);
|
|
29
|
+
};
|
|
30
|
+
const ensureCursorHidden = (showCursor, hasHiddenCursor) => {
|
|
31
|
+
if (!showCursor && !hasHiddenCursor) {
|
|
32
|
+
cliCursor.hide();
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
return hasHiddenCursor;
|
|
36
|
+
};
|
|
37
|
+
const ensureCursorShown = (showCursor) => {
|
|
38
|
+
if (!showCursor) {
|
|
39
|
+
cliCursor.show();
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const moveCursorDown = (buffer, skippedLines) => {
|
|
43
|
+
if (skippedLines > 0) {
|
|
44
|
+
if (skippedLines === 1) {
|
|
45
|
+
buffer.push(ansiEscapes.cursorNextLine);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
buffer.push(ansiEscapes.cursorDown(skippedLines));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return 0;
|
|
52
|
+
};
|
|
53
|
+
const createStandard = (stream, { showCursor = false, alternateBuffer = false, alternateBufferAlreadyActive = false, getRows = () => 0, getColumns = () => 0, } = {}) => {
|
|
7
54
|
let previousLineCount = 0;
|
|
8
55
|
let previousOutput = '';
|
|
9
56
|
// Keep track of the actual previous output rendered to the alternate buffer
|
|
10
57
|
// which may be truncated to the terminal height.
|
|
11
58
|
let previousOutputAlternateBuffer = '';
|
|
59
|
+
let previousRows = 0;
|
|
60
|
+
let previousColumns = 0;
|
|
12
61
|
let hasHiddenCursor = false;
|
|
13
62
|
if (alternateBuffer) {
|
|
14
|
-
stream
|
|
63
|
+
enterAlternateBuffer(stream, alternateBufferAlreadyActive);
|
|
15
64
|
}
|
|
16
|
-
const render = (str) => {
|
|
17
|
-
|
|
18
|
-
cliCursor.hide();
|
|
19
|
-
hasHiddenCursor = true;
|
|
20
|
-
}
|
|
65
|
+
const render = (str, _styledOutput, debugRainbowColor) => {
|
|
66
|
+
hasHiddenCursor = ensureCursorHidden(showCursor, hasHiddenCursor);
|
|
21
67
|
const output = str + '\n';
|
|
22
68
|
if (alternateBuffer) {
|
|
23
69
|
let alternateBufferOutput = output;
|
|
24
70
|
const rows = getRows() ?? 0;
|
|
71
|
+
const columns = getColumns() ?? 0;
|
|
25
72
|
if (rows > 0) {
|
|
26
73
|
const lines = str.split('\n');
|
|
27
74
|
const lineCount = lines.length;
|
|
28
|
-
// Only write the
|
|
75
|
+
// Only write the first `rows` lines as the alternate buffer
|
|
29
76
|
// will not scroll so all we accomplish by writing more
|
|
30
77
|
// content is risking flicker and confusing the terminal about
|
|
31
78
|
// the cursor position.
|
|
32
79
|
if (lineCount > rows) {
|
|
33
|
-
alternateBufferOutput = lines.slice(
|
|
34
|
-
}
|
|
35
|
-
// Only write the last `rows` lines as the alternate buffer
|
|
36
|
-
// will not scroll so all we accomplish by writing more
|
|
37
|
-
// content is risking flicker and confusing the terminal about
|
|
38
|
-
// the cursor position.
|
|
39
|
-
if (lineCount > rows) {
|
|
40
|
-
alternateBufferOutput = str.split('\n').slice(-rows).join('\n');
|
|
80
|
+
alternateBufferOutput = lines.slice(0, rows).join('\n');
|
|
41
81
|
}
|
|
42
82
|
}
|
|
43
83
|
// In alternate buffer mode we need to re-render based on whether content
|
|
44
84
|
// visible within the clipped alternate output buffer has changed even
|
|
45
85
|
// if the entire output string has not changed.
|
|
46
|
-
if (alternateBufferOutput !== previousOutputAlternateBuffer
|
|
86
|
+
if (alternateBufferOutput !== previousOutputAlternateBuffer ||
|
|
87
|
+
rows !== previousRows ||
|
|
88
|
+
columns !== previousColumns) {
|
|
47
89
|
// Unfortunately, eraseScreen does not work correctly in iTerm2 so we
|
|
48
90
|
// have to use clearTerminal instead.
|
|
49
91
|
const eraseOperation = process.env['TERM_PROGRAM'] === 'iTerm.app'
|
|
50
92
|
? ansiEscapes.clearTerminal
|
|
51
93
|
: ansiEscapes.eraseScreen;
|
|
52
|
-
|
|
94
|
+
let outputToWrite = alternateBufferOutput;
|
|
95
|
+
outputToWrite = debugRainbowColor
|
|
96
|
+
? colorize(outputToWrite, debugRainbowColor, 'background')
|
|
97
|
+
: outputToWrite;
|
|
98
|
+
stream.write((enableSynchronizedOutput ? enterSynchronizedOutput : '') +
|
|
53
99
|
ansiEscapes.cursorTo(0, 0) +
|
|
54
100
|
eraseOperation +
|
|
55
|
-
|
|
56
|
-
exitSynchronizedOutput);
|
|
101
|
+
outputToWrite +
|
|
102
|
+
(enableSynchronizedOutput ? exitSynchronizedOutput : ''));
|
|
57
103
|
previousOutputAlternateBuffer = alternateBufferOutput;
|
|
104
|
+
previousRows = rows;
|
|
105
|
+
previousColumns = columns;
|
|
58
106
|
}
|
|
59
107
|
previousOutput = output;
|
|
60
108
|
return;
|
|
61
109
|
}
|
|
110
|
+
if (output === previousOutput) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
62
113
|
previousOutput = output;
|
|
63
|
-
|
|
114
|
+
let outputToWrite = output;
|
|
115
|
+
outputToWrite = debugRainbowColor
|
|
116
|
+
? colorize(outputToWrite, debugRainbowColor, 'background')
|
|
117
|
+
: outputToWrite;
|
|
118
|
+
stream.write(ansiEscapes.eraseLines(previousLineCount) + outputToWrite);
|
|
64
119
|
previousLineCount = output.split('\n').length;
|
|
65
120
|
};
|
|
66
121
|
render.clear = () => {
|
|
67
122
|
if (alternateBuffer) {
|
|
68
|
-
|
|
69
|
-
? ansiEscapes.clearTerminal
|
|
70
|
-
: ansiEscapes.eraseScreen;
|
|
71
|
-
stream.write(eraseOperation);
|
|
123
|
+
clearAlternateBuffer(stream);
|
|
72
124
|
previousOutput = '';
|
|
73
125
|
return;
|
|
74
126
|
}
|
|
@@ -80,17 +132,10 @@ const create = (stream, { showCursor = false, alternateBuffer = false, getRows =
|
|
|
80
132
|
const lastFrame = previousOutput;
|
|
81
133
|
previousOutput = '';
|
|
82
134
|
previousLineCount = 0;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
hasHiddenCursor = false;
|
|
86
|
-
}
|
|
135
|
+
ensureCursorShown(showCursor);
|
|
136
|
+
hasHiddenCursor = false;
|
|
87
137
|
if (alternateBuffer) {
|
|
88
|
-
stream
|
|
89
|
-
// The last frame was rendered to the alternate buffer.
|
|
90
|
-
// We need to render it again to the main buffer. If apps do not
|
|
91
|
-
// want this behavior, they can make sure the last frame is empty
|
|
92
|
-
// before unmounting.
|
|
93
|
-
stream.write(lastFrame);
|
|
138
|
+
exitAlternateBuffer(stream, lastFrame);
|
|
94
139
|
}
|
|
95
140
|
};
|
|
96
141
|
render.sync = (str) => {
|
|
@@ -104,6 +149,224 @@ const create = (stream, { showCursor = false, alternateBuffer = false, getRows =
|
|
|
104
149
|
};
|
|
105
150
|
return render;
|
|
106
151
|
};
|
|
152
|
+
const createIncremental = (stream, { showCursor = false, alternateBuffer = false, alternateBufferAlreadyActive = false, getRows = () => 0, getColumns = () => 0, } = {}) => {
|
|
153
|
+
let previousLines = [];
|
|
154
|
+
let previousOutput = '';
|
|
155
|
+
let previousOutputAlternateBuffer = '';
|
|
156
|
+
let previousRows = 0;
|
|
157
|
+
let previousColumns = 0;
|
|
158
|
+
let hasHiddenCursor = false;
|
|
159
|
+
let alternateBufferStyledOutput = [];
|
|
160
|
+
if (alternateBuffer) {
|
|
161
|
+
enterAlternateBuffer(stream, alternateBufferAlreadyActive);
|
|
162
|
+
}
|
|
163
|
+
const render = (str, styledOutput, debugRainbowColor) => {
|
|
164
|
+
hasHiddenCursor = ensureCursorHidden(showCursor, hasHiddenCursor);
|
|
165
|
+
const output = str + '\n';
|
|
166
|
+
if (alternateBuffer) {
|
|
167
|
+
let alternateBufferOutput = output;
|
|
168
|
+
const rows = getRows() ?? 0;
|
|
169
|
+
const columns = getColumns() ?? 0;
|
|
170
|
+
if (rows > 0) {
|
|
171
|
+
const lines = str.split('\n');
|
|
172
|
+
const lineCount = lines.length;
|
|
173
|
+
// Only write the first `rows` lines as the alternate buffer
|
|
174
|
+
// will not scroll so all we accomplish by writing more
|
|
175
|
+
// content is risking flicker and confusion about the terminal about
|
|
176
|
+
// the cursor position.
|
|
177
|
+
if (lineCount > rows) {
|
|
178
|
+
alternateBufferOutput = lines.slice(0, rows).join('\n');
|
|
179
|
+
alternateBufferStyledOutput = styledOutput.slice(0, rows);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
alternateBufferOutput = lines.join('\n');
|
|
183
|
+
alternateBufferStyledOutput = styledOutput;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// In alternate buffer mode we need to re-render based on whether content
|
|
187
|
+
// visible within the clipped alternate output buffer has changed even
|
|
188
|
+
// if the entire output string has not changed.
|
|
189
|
+
if (alternateBufferOutput !== previousOutputAlternateBuffer ||
|
|
190
|
+
rows !== previousRows ||
|
|
191
|
+
columns !== previousColumns) {
|
|
192
|
+
const nextLines = alternateBufferOutput.split('\n');
|
|
193
|
+
if (rows === previousRows && columns === previousColumns) {
|
|
194
|
+
const buffer = [];
|
|
195
|
+
if (enableSynchronizedOutput) {
|
|
196
|
+
buffer.push(enterSynchronizedOutput);
|
|
197
|
+
}
|
|
198
|
+
buffer.push(ansiEscapes.cursorTo(0, 0));
|
|
199
|
+
let skippedLines = 0;
|
|
200
|
+
for (let i = 0; i < nextLines.length; i++) {
|
|
201
|
+
if (nextLines[i] === previousLines[i]) {
|
|
202
|
+
skippedLines++;
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
skippedLines = moveCursorDown(buffer, skippedLines);
|
|
206
|
+
let lineToWrite = nextLines[i] ?? '';
|
|
207
|
+
let lineLength = 0;
|
|
208
|
+
const styledOutput = alternateBufferStyledOutput[i];
|
|
209
|
+
if (styledOutput !== undefined) {
|
|
210
|
+
for (let j = styledOutput.length - 1; j >= 0; j--) {
|
|
211
|
+
const char = styledOutput[j];
|
|
212
|
+
if (char === undefined)
|
|
213
|
+
continue;
|
|
214
|
+
if (char.value !== ' ' && char.value !== '') {
|
|
215
|
+
lineLength = j + (char.fullWidth ? 2 : 1);
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
lineToWrite = debugRainbowColor
|
|
221
|
+
? colorize(lineToWrite, debugRainbowColor, 'background')
|
|
222
|
+
: lineToWrite;
|
|
223
|
+
buffer.push(lineToWrite);
|
|
224
|
+
if (columns > lineLength) {
|
|
225
|
+
// Clear the rest of the line without introducing flicker.
|
|
226
|
+
// We could optimize this further by only writing spaces up to the last line length
|
|
227
|
+
// but this is safer.
|
|
228
|
+
// The one failure mode for this is that if we add too many spaces and there was a
|
|
229
|
+
// non space character at the very end of the line
|
|
230
|
+
buffer.push(' '.repeat(columns - lineLength));
|
|
231
|
+
}
|
|
232
|
+
if (i < nextLines.length - 1) {
|
|
233
|
+
buffer.push('\n');
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
skippedLines = moveCursorDown(buffer, skippedLines);
|
|
237
|
+
if (previousLines.length > nextLines.length) {
|
|
238
|
+
const linesToClear = previousLines.length - nextLines.length;
|
|
239
|
+
for (let i = 0; i < linesToClear; i++) {
|
|
240
|
+
buffer.push(ansiEscapes.eraseLine + ansiEscapes.cursorNextLine);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
if (enableSynchronizedOutput) {
|
|
244
|
+
buffer.push(exitSynchronizedOutput);
|
|
245
|
+
}
|
|
246
|
+
stream.write(buffer.join(''));
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
// Unfortunately, eraseScreen does not work correctly in iTerm2 so we
|
|
250
|
+
// have to use clearTerminal instead.
|
|
251
|
+
const eraseOperation = process.env['TERM_PROGRAM'] === 'iTerm.app'
|
|
252
|
+
? ansiEscapes.clearTerminal
|
|
253
|
+
: ansiEscapes.eraseScreen;
|
|
254
|
+
let outputToWrite = alternateBufferOutput;
|
|
255
|
+
outputToWrite = debugRainbowColor
|
|
256
|
+
? colorize(outputToWrite, debugRainbowColor, 'background')
|
|
257
|
+
: outputToWrite;
|
|
258
|
+
stream.write(enterSynchronizedOutput +
|
|
259
|
+
ansiEscapes.cursorTo(0, 0) +
|
|
260
|
+
eraseOperation +
|
|
261
|
+
outputToWrite +
|
|
262
|
+
exitSynchronizedOutput);
|
|
263
|
+
previousRows = rows;
|
|
264
|
+
previousColumns = columns;
|
|
265
|
+
}
|
|
266
|
+
previousOutputAlternateBuffer = alternateBufferOutput;
|
|
267
|
+
previousLines = nextLines;
|
|
268
|
+
}
|
|
269
|
+
previousOutput = output;
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
if (output === previousOutput) {
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
const previousCount = previousLines.length;
|
|
276
|
+
const nextLines = output.split('\n');
|
|
277
|
+
const nextCount = nextLines.length;
|
|
278
|
+
const visibleCount = nextCount - 1;
|
|
279
|
+
if (output === '\n' || previousOutput.length === 0) {
|
|
280
|
+
let outputToWrite = output;
|
|
281
|
+
outputToWrite = debugRainbowColor
|
|
282
|
+
? colorize(outputToWrite, debugRainbowColor, 'background')
|
|
283
|
+
: outputToWrite;
|
|
284
|
+
stream.write(ansiEscapes.eraseLines(previousCount) + outputToWrite);
|
|
285
|
+
previousOutput = output;
|
|
286
|
+
previousLines = nextLines;
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
// We aggregate all chunks for incremental rendering into a buffer, and then write them to stdout at the end.
|
|
290
|
+
const buffer = [];
|
|
291
|
+
// Clear extra lines if the current content's line count is lower than the previous.
|
|
292
|
+
if (nextCount < previousCount) {
|
|
293
|
+
buffer.push(
|
|
294
|
+
// Erases the trailing lines and the final newline slot.
|
|
295
|
+
ansiEscapes.eraseLines(previousCount - nextCount + 1),
|
|
296
|
+
// Positions cursor to the top of the rendered output.
|
|
297
|
+
ansiEscapes.cursorUp(visibleCount));
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
buffer.push(ansiEscapes.cursorUp(previousCount - 1));
|
|
301
|
+
}
|
|
302
|
+
let skippedLines = 0;
|
|
303
|
+
for (let i = 0; i < visibleCount; i++) {
|
|
304
|
+
// We do not write lines if the contents are the same. This prevents flickering during renders.
|
|
305
|
+
if (nextLines[i] === previousLines[i]) {
|
|
306
|
+
skippedLines++;
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
309
|
+
skippedLines = moveCursorDown(buffer, skippedLines);
|
|
310
|
+
let lineToWrite = nextLines[i] ?? '';
|
|
311
|
+
lineToWrite = debugRainbowColor
|
|
312
|
+
? colorize(lineToWrite, debugRainbowColor, 'background')
|
|
313
|
+
: lineToWrite;
|
|
314
|
+
buffer.push(ansiEscapes.eraseLine + lineToWrite + '\n');
|
|
315
|
+
}
|
|
316
|
+
skippedLines = moveCursorDown(buffer, skippedLines);
|
|
317
|
+
stream.write(buffer.join(''));
|
|
318
|
+
previousOutput = output;
|
|
319
|
+
previousLines = nextLines;
|
|
320
|
+
};
|
|
321
|
+
render.clear = () => {
|
|
322
|
+
if (alternateBuffer) {
|
|
323
|
+
clearAlternateBuffer(stream);
|
|
324
|
+
previousOutput = '';
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
stream.write(ansiEscapes.eraseLines(previousLines.length));
|
|
328
|
+
previousOutput = '';
|
|
329
|
+
previousLines = [];
|
|
330
|
+
};
|
|
331
|
+
render.done = () => {
|
|
332
|
+
const lastFrame = previousOutput;
|
|
333
|
+
previousOutput = '';
|
|
334
|
+
previousLines = [];
|
|
335
|
+
ensureCursorShown(showCursor);
|
|
336
|
+
hasHiddenCursor = false;
|
|
337
|
+
if (alternateBuffer) {
|
|
338
|
+
exitAlternateBuffer(stream, lastFrame);
|
|
339
|
+
}
|
|
340
|
+
};
|
|
341
|
+
render.sync = (str) => {
|
|
342
|
+
if (alternateBuffer) {
|
|
343
|
+
previousOutput = str;
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
const output = str + '\n';
|
|
347
|
+
previousOutput = output;
|
|
348
|
+
previousLines = output.split('\n');
|
|
349
|
+
};
|
|
350
|
+
return render;
|
|
351
|
+
};
|
|
352
|
+
const create = (stream, { showCursor = false, alternateBuffer = false, alternateBufferAlreadyActive = false, incremental = false, getRows, getColumns, } = {}) => {
|
|
353
|
+
if (incremental) {
|
|
354
|
+
return createIncremental(stream, {
|
|
355
|
+
showCursor,
|
|
356
|
+
alternateBuffer,
|
|
357
|
+
alternateBufferAlreadyActive,
|
|
358
|
+
getRows,
|
|
359
|
+
getColumns,
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
return createStandard(stream, {
|
|
363
|
+
showCursor,
|
|
364
|
+
alternateBuffer,
|
|
365
|
+
alternateBufferAlreadyActive,
|
|
366
|
+
getRows,
|
|
367
|
+
getColumns,
|
|
368
|
+
});
|
|
369
|
+
};
|
|
107
370
|
const logUpdate = { create };
|
|
108
371
|
export default logUpdate;
|
|
109
372
|
//# sourceMappingURL=log-update.js.map
|