@canopycanopycanopy/b-ber-logger 3.0.8-nav.0 → 3.0.8-next.96

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/README.md CHANGED
@@ -1,58 +1,31 @@
1
1
  # `@canopycanopycanopy/b-ber-logger`
2
2
 
3
- `b-ber-logger` is b-ber's console logger.
4
-
5
- ## Install
6
-
7
- ```
8
- $ npm i -g @canopycanopycanopy/b-ber-logger
9
- ```
10
-
11
- ## Usage
12
-
13
- Output from `bber` commands can be logged to the console with different levels of verbosity.
14
-
15
- ### Arguments
16
-
17
- #### `--quiet`
18
-
19
- The `--quiet` flag will emit nothing to the console and is an alias of `loglevel=0`.
20
-
21
- ```
22
- $ bber build --quiet
23
- $ bber build --log-level=0
24
- ```
25
-
26
- #### `--warn`
27
-
28
- The `---warn` flag will emit warnings and single-line error messages to the console and is an alias of `loglevel=1`.
29
-
30
- ```
31
- $ bber build --warn
32
- $ bber build --log-level=1
33
- ```
34
-
35
- #### `--error`
36
-
37
- The `--error` flag will emit warnings and stack traces for errors to the console and is an alias of `loglevel=2`.
38
-
39
- ```
40
- $ bber build --error
41
- $ bber build --log-level=2
42
- ```
43
-
44
- #### `--verbose`
45
-
46
- The `--verbose` flat will emit messages, warnings, errors and stack traces to the console.
47
-
48
- ```
49
- $ bber build --verbose
50
- ```
51
-
52
- #### `--debug`
53
-
54
- The `--debug` flag will emit stack traces for everything, as well as warnings and errors to the console.
55
-
56
- ```
57
- $ bber build --debug
3
+ `b-ber-logger` is the logging utility for the b-ber build pipeline. It exports a single `Logger` singleton (`log`) that all other packages import instead of using `console.log` directly. The logger supports levelled output (`info`, `warn`, `error`, `debug`, `trace`, `notice`, `inspect`), chalk-coloured formatting, indentation tracking across nested task steps, a build-run timer, end-of-run summary of collected warnings and errors, and quiet/verbose/debug modes driven by CLI flags (`--quiet`, `--verbose`, `--debug`, `--log-level=N`).
4
+
5
+ ## Key exports
6
+
7
+ | Export | Purpose |
8
+ | --------------- | ------------------------------------------------------------- |
9
+ | `log` (default) | Singleton `Logger` instance; import and call methods directly |
10
+
11
+ ### Logger methods
12
+
13
+ | Method | Purpose |
14
+ | ------------------------- | -------------------------------------------------- |
15
+ | `log.info(msg)` | Standard informational output |
16
+ | `log.warn(msg)` | Warning, collected for end-of-run summary |
17
+ | `log.error(msg)` | Error output, collected for end-of-run summary |
18
+ | `log.debug(msg)` | Debug output; enabled by `--debug` flag |
19
+ | `log.trace(msg)` | Trace-level output |
20
+ | `log.notice(msg)` | Notice-level output |
21
+ | `log.inspect(val)` | Pretty-prints objects |
22
+ | `log.printSummary()` | Prints collected warnings/errors at end of a build |
23
+ | `log.configure(opts)` | Applies settings (logLevel, boringOutput, etc.) |
24
+ | `log.registerSequence(n)` | Sets total task count for progress display |
25
+
26
+ ## Dev
27
+
28
+ ```bash
29
+ npm test # jest
30
+ npm run build
58
31
  ```
@@ -0,0 +1,111 @@
1
+ import { EventEmitter } from "events";
2
+
3
+ //#region src/Timer.d.ts
4
+ interface TaskTime {
5
+ taskName: string;
6
+ beginHrtime: [number, number];
7
+ endHrtime: [number, number];
8
+ beginMs: string;
9
+ endMs: string;
10
+ totalMs: string;
11
+ }
12
+ declare class Timer extends EventEmitter {
13
+ static dateFormattingOptions: Intl.DateTimeFormatOptions;
14
+ static timeFormat(t: [number, number]): string;
15
+ static dateFormat(): string;
16
+ taskBegin: [number, number] | null;
17
+ taskEnd: [number, number] | null;
18
+ sequenceBegin: [number, number];
19
+ formattedStartDate: string;
20
+ taskTimes: TaskTime[];
21
+ constructor();
22
+ prepare(): void;
23
+ start(task: string): void;
24
+ stop(task: string): void;
25
+ done({
26
+ state
27
+ }: {
28
+ state: unknown;
29
+ }): void;
30
+ }
31
+ //#endregion
32
+ //#region src/index.d.ts
33
+ interface LoggerSettings {
34
+ quiet: boolean;
35
+ verbose: boolean;
36
+ debug: boolean;
37
+ summary: boolean;
38
+ 'no-color': boolean;
39
+ 'log-level': number;
40
+ }
41
+ interface LogEntry {
42
+ stack: string | undefined;
43
+ message: string;
44
+ formatted: string;
45
+ }
46
+ declare class Logger extends Timer {
47
+ static defaults: {
48
+ logLevel: number;
49
+ boringOutput: boolean;
50
+ summary: boolean;
51
+ command: string | null;
52
+ consoleWidth: number;
53
+ errors: LogEntry[];
54
+ warnings: LogEntry[];
55
+ taskWarnings: number;
56
+ taskErrors: number;
57
+ whitespace: string;
58
+ increment: number;
59
+ indentLevel: number;
60
+ taskCounter: number;
61
+ context: string | null;
62
+ };
63
+ logLevel: number;
64
+ boringOutput: boolean;
65
+ command: string | null;
66
+ consoleWidth: number;
67
+ errors: LogEntry[];
68
+ warnings: LogEntry[];
69
+ taskWarnings: number;
70
+ taskErrors: number;
71
+ whitespace: string;
72
+ increment: number;
73
+ indentLevel: number;
74
+ taskCounter: number;
75
+ context: string | null;
76
+ summary?: boolean;
77
+ task?: string;
78
+ settings: LoggerSettings;
79
+ printWarnings: (task?: string) => void;
80
+ printErrors: (task?: string) => void;
81
+ indent: () => string;
82
+ incrementIndent: () => void;
83
+ decrementIndent: () => void;
84
+ incrementCounter: () => void;
85
+ decrementCounter: () => void;
86
+ bind: () => void;
87
+ notify: (event: string, data: unknown) => void;
88
+ warn: (...args: unknown[]) => void;
89
+ info: (...args: unknown[]) => void;
90
+ error: (args: unknown) => void;
91
+ debug: () => void;
92
+ trace: () => void;
93
+ notice: (...args: unknown[]) => void;
94
+ inspect: (args: unknown) => void;
95
+ printSummary: (data: unknown) => void;
96
+ configure: () => void;
97
+ printVersion: (version: string) => void;
98
+ registerSequence: (state: unknown, command: string, sequence: string[]) => void;
99
+ wrap: (arr: string[], space: string) => string;
100
+ decorate: (args: unknown, ...props: string[]) => string;
101
+ floatFormat: (n: unknown) => string;
102
+ counter: () => string;
103
+ getContext: () => string;
104
+ composeMessage: (args: unknown[]) => string;
105
+ reset: () => void;
106
+ constructor();
107
+ newLine(): void;
108
+ }
109
+ declare const log: Logger;
110
+ export = log;
111
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/Timer.ts","../src/index.ts"],"mappings":";;;UAEU,QAAA;EACR,QAAA;EACA,WAAA;EACA,SAAA;EACA,OAAA;EACA,KAAA;EACA,OAAA;AAAA;AAAA,cAGI,KAAA,SAAc,YAAA;EAAA,OACX,qBAAA,EAAuB,IAAA,CAAK,qBAAA;EAAA,OAS5B,UAAA,CAAW,CAAA;EAAA,OAKX,UAAA;EAIP,SAAA;EACA,OAAA;EACA,aAAA;EACA,kBAAA;EACA,SAAA,EAAY,QAAA;;EAOZ,OAAA;EASA,KAAA,CAAM,IAAA;EAKN,IAAA,CAAK,IAAA;EAoBL,IAAA;IAAO;EAAA;IAAW,KAAA;EAAA;AAAA;;;UChDV,cAAA;EACR,KAAA;EACA,OAAA;EACA,KAAA;EACA,OAAA;EACA,UAAA;EACA,WAAA;AAAA;AAAA,UAGQ,QAAA;EACR,KAAA;EACA,OAAA;EACA,SAAA;AAAA;AAAA,cAGI,MAAA,SAAe,KAAA;EAAA,OACZ,QAAA;;;;;;YAMS,QAAA;cACE,QAAA;;;;;;;;;EAUlB,QAAA;EACA,YAAA;EACA,OAAA;EACA,YAAA;EACA,MAAA,EAAS,QAAA;EACT,QAAA,EAAW,QAAA;EACX,YAAA;EACA,UAAA;EACA,UAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;EACA,OAAA;EACA,OAAA;EACA,IAAA;EACA,QAAA,EAAW,cAAA;EAEX,aAAA,GAAiB,IAAA;EACjB,WAAA,GAAe,IAAA;EACf,MAAA;EACA,eAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,IAAA;EACA,MAAA,GAAU,KAAA,UAAe,IAAA;EACzB,IAAA,MAAW,IAAA;EACX,IAAA,MAAW,IAAA;EACX,KAAA,GAAS,IAAA;EACT,KAAA;EACA,KAAA;EACA,MAAA,MAAa,IAAA;EACb,OAAA,GAAW,IAAA;EACX,YAAA,GAAgB,IAAA;EAChB,SAAA;EACA,YAAA,GAAgB,OAAA;EAChB,gBAAA,GACE,KAAA,WACA,OAAA,UACA,QAAA;EAEF,IAAA,GAAQ,GAAA,YAAe,KAAA;EACvB,QAAA,GAAY,IAAA,cAAkB,KAAA;EAC9B,WAAA,GAAe,CAAA;EACf,OAAA;EACA,UAAA;EACA,cAAA,GAAkB,IAAA;EAClB,KAAA;;EAsFA,OAAA;AAAA;AAAA,cAKI,GAAA,EAAG,MAAe;AAAA"}