|
1 | 1 |
|
2 |
| -import {Target} from "./targets/target.js" |
| 2 | +import {Writer} from "./writers/writer.js" |
3 | 3 | import {Shaper} from "./shapers/shaper.js"
|
4 |
| -import {denoTarget} from "./targets/deno.js" |
5 |
| -import {nodeTarget} from "./targets/node.js" |
| 4 | +import {autoColors} from "./colors/auto.js" |
| 5 | +import {denoWriter} from "./writers/deno.js" |
| 6 | +import {nodeWriter} from "./writers/node.js" |
| 7 | +import {voidWriter} from "./writers/void.js" |
| 8 | +import {autoWriter} from "./writers/auto.js" |
6 | 9 | import {colorless} from "./colors/colorless.js"
|
7 |
| -import {consoleTarget} from "./targets/console.js" |
8 |
| -import {isColorSupported} from "./utils/supports.js" |
| 10 | +import {consoleWriter} from "./writers/console.js" |
9 | 11 | import {colorful, Colors} from "./colors/colorful.js"
|
10 | 12 | import {timestampShaper} from "./shapers/timestamp.js"
|
11 | 13 |
|
12 | 14 | export class Logger {
|
13 |
| - static targets = { |
14 |
| - deno: denoTarget, |
15 |
| - node: nodeTarget, |
16 |
| - console: consoleTarget, |
| 15 | + static writers = { |
| 16 | + auto: autoWriter, |
| 17 | + void: voidWriter, |
| 18 | + deno: denoWriter, |
| 19 | + node: nodeWriter, |
| 20 | + console: consoleWriter, |
17 | 21 | }
|
18 | 22 |
|
19 | 23 | static colors = {
|
| 24 | + auto: autoColors, |
20 | 25 | colorful: () => colorful,
|
21 | 26 | colorless: () => colorless,
|
22 |
| - auto: () => isColorSupported() |
23 |
| - ? colorful |
24 |
| - : colorless, |
25 | 27 | }
|
26 | 28 |
|
27 | 29 | static shapers = {
|
28 | 30 | timestamp: timestampShaper,
|
29 | 31 | }
|
30 | 32 |
|
31 | 33 | colors: Colors = Logger.colors.auto()
|
32 |
| - target = consoleTarget() |
| 34 | + writer: Writer = Logger.writers.auto() |
33 | 35 | shapers: Shaper[] = []
|
34 | 36 |
|
35 | 37 | async log(...items: any[]) {
|
36 | 38 | for (const transform of this.shapers)
|
37 | 39 | items = transform(this).stdout(items)
|
38 |
| - await this.target.stdout(items) |
| 40 | + await this.writer.stdout(items) |
39 | 41 | }
|
40 | 42 |
|
41 | 43 | async error(...items: any[]) {
|
42 | 44 | for (const transform of this.shapers)
|
43 | 45 | items = transform(this).stderr(items)
|
44 |
| - await this.target.stderr(items) |
| 46 | + await this.writer.stderr(items) |
45 | 47 | }
|
46 | 48 |
|
47 | 49 | setColors(colors: Colors) {
|
48 | 50 | this.colors = colors
|
49 | 51 | return this
|
50 | 52 | }
|
51 | 53 |
|
52 |
| - setTarget(target: Target) { |
53 |
| - this.target = target |
| 54 | + setWriter(writer: Writer) { |
| 55 | + this.writer = writer |
54 | 56 | return this
|
55 | 57 | }
|
56 | 58 |
|
|
0 commit comments