-
-
Notifications
You must be signed in to change notification settings - Fork 42
Expand file tree
/
Copy pathindex.d.ts
More file actions
167 lines (128 loc) · 3.46 KB
/
index.d.ts
File metadata and controls
167 lines (128 loc) · 3.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
export type Options = {
/**
Show the cursor. This can be useful when a CLI accepts input from a user.
@example
```
import {createLogUpdate} from 'log-update';
// Write output but don't hide the cursor
const log = createLogUpdate(process.stdout, {
showCursor: true
});
```
*/
readonly showCursor?: boolean;
/**
The width to use when the stream doesn't provide a `columns` property. Defaults to `80`.
This is useful when the output is piped, redirected, or in environments where the terminal size is not available.
@default 80
@example
```
import {createLogUpdate} from 'log-update';
// Use custom width when the stream doesn't provide columns
const log = createLogUpdate(process.stdout, {
defaultWidth: 120
});
```
*/
readonly defaultWidth?: number;
/**
The height to use when the stream doesn't provide a `rows` property. Defaults to `24`.
This is useful when the output is piped, redirected, or in environments where the terminal size is not available.
@default 24
@example
```
import {createLogUpdate} from 'log-update';
// Use custom height when the stream doesn't provide rows
const log = createLogUpdate(process.stdout, {
defaultHeight: 50
});
```
*/
readonly defaultHeight?: number;
};
type LogUpdateMethods = {
/**
Clear the logged output.
*/
clear(): void;
/**
Persist the logged output. Useful if you want to start a new log session below the current one.
*/
done(): void;
/**
Write text to the terminal that persists in the scrollback buffer.
Unlike the main log function which updates in place, this method writes output that remains in the terminal history, similar to `console.log()`. This is useful for displaying permanent results, status messages, or logs that users need to scroll back and review.
@param text - The text to persist to the terminal.
@example
```
import logUpdate from 'log-update';
// Update in place
logUpdate('Processing...');
logUpdate('Still processing...');
// Write permanent output
logUpdate.persist('✓ Task complete');
logUpdate.persist('✓ All tests passed');
// Continue with updates
logUpdate('Starting next task...');
```
*/
persist(...text: string[]): void;
};
/**
Log to `stdout` by overwriting the previous output in the terminal.
@param text - The text to log to `stdout`.
@example
```
import logUpdate from 'log-update';
const frames = ['-', '\\', '|', '/'];
let index = 0;
setInterval(() => {
const frame = frames[index = ++index % frames.length];
logUpdate(
`
♥♥
${frame} unicorns ${frame}
♥♥
`
);
}, 80);
```
*/
declare const logUpdate: ((...text: string[]) => void) & LogUpdateMethods;
export default logUpdate;
/**
Log to `stderr` by overwriting the previous output in the terminal.
@param text - The text to log to `stderr`.
@example
```
import {logUpdateStderr} from 'log-update';
const frames = ['-', '\\', '|', '/'];
let index = 0;
setInterval(() => {
const frame = frames[index = ++index % frames.length];
logUpdateStderr(
`
♥♥
${frame} unicorns ${frame}
♥♥
`
);
}, 80);
```
*/
declare const logUpdateStderr: ((...text: string[]) => void) & LogUpdateMethods;
export {logUpdateStderr};
/**
Get a `logUpdate` method that logs to the specified stream.
@param stream - The stream to log to.
@example
```
import {createLogUpdate} from 'log-update';
// Write output but don't hide the cursor
const log = createLogUpdate(process.stdout);
```
*/
export function createLogUpdate(
stream: NodeJS.WritableStream,
options?: Options
): typeof logUpdate;