Skip to content

Commit 04ed301

Browse files
alan-agius4hansl
authored andcommitted
feat(@angular-devkit/core): createConsoleLogger now accepts 2 parameters to add custom stdout and stderr
1 parent 40129cc commit 04ed301

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

packages/angular_devkit/core/node/cli-logger.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,25 @@
88
import { filter } from 'rxjs/operators';
99
import { logging, terminal } from '../src';
1010

11+
export interface ProcessOutput {
12+
write(buffer: string | Buffer): boolean;
13+
}
1114

1215
/**
1316
* A Logger that sends information to STDOUT and STDERR.
1417
*/
15-
export function createConsoleLogger(verbose = false): logging.Logger {
18+
export function createConsoleLogger(
19+
verbose = false,
20+
stdout: ProcessOutput = process.stdout,
21+
stderr: ProcessOutput = process.stderr,
22+
): logging.Logger {
1623
const logger = new logging.IndentLogger('cling');
1724

1825
logger
1926
.pipe(filter(entry => (entry.level != 'debug' || verbose)))
2027
.subscribe(entry => {
2128
let color: (s: string) => string = x => terminal.dim(terminal.white(x));
22-
let output = process.stdout;
29+
let output = stdout;
2330
switch (entry.level) {
2431
case 'info':
2532
color = terminal.white;
@@ -29,11 +36,11 @@ export function createConsoleLogger(verbose = false): logging.Logger {
2936
break;
3037
case 'error':
3138
color = terminal.red;
32-
output = process.stderr;
39+
output = stderr;
3340
break;
3441
case 'fatal':
3542
color = (x: string) => terminal.bold(terminal.red(x));
36-
output = process.stderr;
43+
output = stderr;
3744
break;
3845
}
3946

0 commit comments

Comments
 (0)