Skip to content

Commit 6730821

Browse files
committed
merge log levels and aliases; remove silent
1 parent 922a11c commit 6730821

File tree

5 files changed

+15
-42
lines changed

5 files changed

+15
-42
lines changed

packages/logger/src/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const logLevels = ['debug', 'info', 'log', 'warn', 'error'] as const;

packages/logger/src/logger.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ import type {
5555
LoggerOptions,
5656
LogMethod,
5757
LogArgs,
58-
LogAlias,
5958
} from './types.ts';
6059

6160
/**
@@ -93,10 +92,10 @@ export class Logger {
9392

9493
// Create aliases for the log methods, allowing them to be used in a
9594
// manner similar to the console object.
96-
const bind = (alias: LogAlias): LogMethod =>
95+
const bind = (level: LogLevel): LogMethod =>
9796
this.#dispatch.bind(this, {
9897
...this.#options,
99-
level: alias as LogLevel,
98+
level,
10099
}) as LogMethod;
101100
this.log = bind('log');
102101
this.debug = bind('debug');
Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
import type { DuplexStream } from '@ocap/streams';
2-
import { beforeEach, describe, expect, it, vi } from 'vitest';
2+
import { describe, expect, it, vi } from 'vitest';
33

4+
import { logLevels } from './constants.ts';
45
import { consoleTransport, makeStreamTransport } from './transports.ts';
5-
import type { LogAlias, LogEntry, LogLevel, Transport } from './types.ts';
6+
import type { LogEntry, LogLevel } from './types.ts';
67

78
const makeLogEntry = (level: LogLevel): LogEntry => ({
89
level,
910
message: 'test-message',
1011
tags: ['test-tag'],
1112
});
1213

13-
const logAliases = ['log', 'info', 'debug', 'warn', 'error'] as const;
14-
1514
describe('consoleTransport', () => {
16-
it.each(logAliases)(
15+
it.each(logLevels)(
1716
'logs to the appropriate console alias: %s',
18-
(level: LogAlias) => {
17+
(level: LogLevel) => {
1918
const logEntry = makeLogEntry(level);
2019
const consoleMethodSpy = vi.spyOn(console, level);
2120
consoleTransport(logEntry);
@@ -25,36 +24,16 @@ describe('consoleTransport', () => {
2524
);
2625
},
2726
);
28-
29-
it('does not log silent messages', () => {
30-
const consoleMethodSpies = logAliases.map((alias) =>
31-
vi.spyOn(console, alias),
32-
);
33-
consoleTransport(makeLogEntry('silent'));
34-
consoleMethodSpies.forEach((spy) => expect(spy).not.toHaveBeenCalled());
35-
});
3627
});
3728

3829
describe('makeStreamTransport', () => {
39-
let mockStream: DuplexStream<LogEntry>;
40-
let streamTransport: Transport;
41-
42-
beforeEach(() => {
43-
mockStream = {
44-
write: vi.fn().mockResolvedValue(undefined),
45-
} as unknown as DuplexStream<LogEntry>;
46-
streamTransport = makeStreamTransport(mockStream);
47-
});
48-
4930
it('writes to the stream', () => {
5031
const logEntry = makeLogEntry('info');
32+
const mockStream = {
33+
write: vi.fn().mockResolvedValue(undefined),
34+
} as unknown as DuplexStream<LogEntry>;
35+
const streamTransport = makeStreamTransport(mockStream);
5136
streamTransport(logEntry);
5237
expect(mockStream.write).toHaveBeenCalledWith(logEntry);
5338
});
54-
55-
it('does not write silent messages', () => {
56-
const logEntry = makeLogEntry('silent');
57-
streamTransport(logEntry);
58-
expect(mockStream.write).not.toHaveBeenCalled();
59-
});
6039
});

packages/logger/src/transports.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@ import type { Transport, LogEntry } from './types.ts';
88
* @param entry - The log entry to transport.
99
*/
1010
export const consoleTransport: Transport = (entry) => {
11-
if (entry.level === 'silent') {
12-
return;
13-
}
1411
const args = [
1512
...(entry.tags.length > 0 ? [entry.tags] : []),
1613
...(entry.message ? [entry.message] : []),
@@ -30,9 +27,6 @@ export const makeStreamTransport = (
3027
stream: DuplexStream<LogEntry>,
3128
): Transport => {
3229
return (entry) => {
33-
if (entry.level === 'silent') {
34-
return;
35-
}
3630
stream.write(entry).catch(console.debug);
3731
};
3832
};

packages/logger/src/types.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
import type { logLevels } from './constants.ts';
2+
13
/**
24
* The log level for the logger.
35
*/
4-
export type LogLevel = 'debug' | 'info' | 'log' | 'warn' | 'error' | 'silent';
6+
export type LogLevel = (typeof logLevels)[number];
57

68
/**
79
* The log entry for the logger.
@@ -30,5 +32,3 @@ export type LoggerOptions = {
3032
export type LogArgs = [string, ...unknown[]] | [];
3133

3234
export type LogMethod = (...args: LogArgs) => void;
33-
34-
export type LogAlias = 'debug' | 'info' | 'log' | 'warn' | 'error';

0 commit comments

Comments
 (0)