( stream: NodeJS.ReadableStream | undefined | null, lineCallback: (line: string) => void, )
| 390 | * and preserving leading indentation. |
| 391 | */ |
| 392 | export function processStreamLines( |
| 393 | stream: NodeJS.ReadableStream | undefined | null, |
| 394 | lineCallback: (line: string) => void, |
| 395 | ): void { |
| 396 | if (!stream) { |
| 397 | return; |
| 398 | } |
| 399 | |
| 400 | const rl = createInterface({ input: stream, terminal: false }); |
| 401 | rl.on('line', (line) => { |
| 402 | const cleanLine = stripVTControlCharacters(line).trimEnd(); |
| 403 | if (cleanLine.length > 0) { |
| 404 | lineCallback(cleanLine); |
| 405 | } |
| 406 | }); |
| 407 | } |