Skip to content

Commit 731d6d2

Browse files
authored
Merge pull request #492 from underctrl-io/logger
feat(Logger): add tagged template support
2 parents b7f0618 + 2ee7ed8 commit 731d6d2

File tree

14 files changed

+407
-87
lines changed

14 files changed

+407
-87
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { EventHandler, Logger } from 'commandkit';
2+
3+
const handler: EventHandler<'clientReady'> = (client) => {
4+
Logger.log(`Successfully logged in as ${client.user?.tag}`);
5+
};
6+
7+
export default handler;

apps/test-bot/src/app/events/ready/logger.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { type EventHandler, Logger } from 'commandkit';
2+
3+
export const once = true;
4+
5+
const handler: EventHandler<'clientReady'> = (client, c, commandkit) => {
6+
Logger.info`Ready from legacy event handler: ${client.user}`;
7+
};
8+
9+
export default handler;

apps/test-bot/src/events/ready/test.ts

Lines changed: 0 additions & 9 deletions
This file was deleted.

apps/website/docs/api-reference/commandkit/classes/default-logger.mdx

Lines changed: 71 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,29 @@ import MemberDescription from '@site/src/components/MemberDescription';
1313

1414
## DefaultLogger
1515

16-
<GenerationInfo sourceFile="packages/commandkit/src/logger/DefaultLogger.ts" sourceLine="52" packageName="commandkit" />
16+
<GenerationInfo sourceFile="packages/commandkit/src/logger/DefaultLogger.ts" sourceLine="54" packageName="commandkit" />
1717

1818
Default logger implementation that logs messages to the console.
1919
It formats the log messages with timestamps, log levels, and context information.
2020

2121
```ts title="Signature"
2222
class DefaultLogger implements ILogger {
2323
constructor(stdout: = process.stdout, stderr: = process.stderr)
24-
debug(args: any[]) => void;
25-
error(args: any[]) => void;
26-
log(args: any[]) => void;
27-
info(args: any[]) => void;
28-
warn(args: any[]) => void;
24+
debug(message: any) => void;
25+
debug(strings: TemplateStringsArray, values: any[]) => void;
26+
debug(messageOrStrings: any | TemplateStringsArray, values: any[]) => void;
27+
error(message: any) => void;
28+
error(strings: TemplateStringsArray, values: any[]) => void;
29+
error(messageOrStrings: any | TemplateStringsArray, values: any[]) => void;
30+
log(message: any) => void;
31+
log(strings: TemplateStringsArray, values: any[]) => void;
32+
log(messageOrStrings: any | TemplateStringsArray, values: any[]) => void;
33+
info(message: any) => void;
34+
info(strings: TemplateStringsArray, values: any[]) => void;
35+
info(messageOrStrings: any | TemplateStringsArray, values: any[]) => void;
36+
warn(message: any) => void;
37+
warn(strings: TemplateStringsArray, values: any[]) => void;
38+
warn(messageOrStrings: any | TemplateStringsArray, values: any[]) => void;
2939
}
3040
```
3141
* Implements: <code><a href='/docs/next/api-reference/commandkit/interfaces/ilogger#ilogger'>ILogger</a></code>
@@ -41,29 +51,79 @@ class DefaultLogger implements ILogger {
4151
Creates a new instance of DefaultLogger.
4252
### debug
4353

44-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
54+
<MemberInfo kind="method" type={`(message: any) => void`} />
4555

4656
Logs a debug message.
57+
### debug
58+
59+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
60+
61+
62+
### debug
63+
64+
<MemberInfo kind="method" type={`(messageOrStrings: any | TemplateStringsArray, values: any[]) => void`} />
65+
66+
4767
### error
4868

49-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
69+
<MemberInfo kind="method" type={`(message: any) => void`} />
5070

5171
Logs an error message.
72+
### error
73+
74+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
75+
76+
77+
### error
78+
79+
<MemberInfo kind="method" type={`(messageOrStrings: any | TemplateStringsArray, values: any[]) => void`} />
80+
81+
5282
### log
5383

54-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
84+
<MemberInfo kind="method" type={`(message: any) => void`} />
5585

5686
Logs a default message.
87+
### log
88+
89+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
90+
91+
92+
### log
93+
94+
<MemberInfo kind="method" type={`(messageOrStrings: any | TemplateStringsArray, values: any[]) => void`} />
95+
96+
5797
### info
5898

59-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
99+
<MemberInfo kind="method" type={`(message: any) => void`} />
60100

61101
Logs an info message.
102+
### info
103+
104+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
105+
106+
107+
### info
108+
109+
<MemberInfo kind="method" type={`(messageOrStrings: any | TemplateStringsArray, values: any[]) => void`} />
110+
111+
62112
### warn
63113

64-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
114+
<MemberInfo kind="method" type={`(message: any) => void`} />
65115

66116
Logs a warning message.
117+
### warn
118+
119+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
120+
121+
122+
### warn
123+
124+
<MemberInfo kind="method" type={`(messageOrStrings: any | TemplateStringsArray, values: any[]) => void`} />
125+
126+
67127

68128

69129
</div>

apps/website/docs/api-reference/commandkit/classes/noop-logger.mdx

Lines changed: 70 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,21 @@ Noop logger implementation that does nothing.
1919

2020
```ts title="Signature"
2121
class NoopLogger implements ILogger {
22-
debug(args: any[]) => void;
23-
error(args: any[]) => void;
24-
log(args: any[]) => void;
25-
info(args: any[]) => void;
26-
warn(args: any[]) => void;
22+
debug(message: any) => void;
23+
debug(strings: TemplateStringsArray, values: any[]) => void;
24+
debug(messageOrStrings: any | TemplateStringsArray, values: any[]) => void;
25+
error(message: any) => void;
26+
error(strings: TemplateStringsArray, values: any[]) => void;
27+
error(messageOrStrings: any | TemplateStringsArray, values: any[]) => void;
28+
log(message: any) => void;
29+
log(strings: TemplateStringsArray, values: any[]) => void;
30+
log(messageOrStrings: any | TemplateStringsArray, values: any[]) => void;
31+
info(message: any) => void;
32+
info(strings: TemplateStringsArray, values: any[]) => void;
33+
info(messageOrStrings: any | TemplateStringsArray, values: any[]) => void;
34+
warn(message: any) => void;
35+
warn(strings: TemplateStringsArray, values: any[]) => void;
36+
warn(messageOrStrings: any | TemplateStringsArray, values: any[]) => void;
2737
}
2838
```
2939
* Implements: <code><a href='/docs/next/api-reference/commandkit/interfaces/ilogger#ilogger'>ILogger</a></code>
@@ -34,29 +44,79 @@ class NoopLogger implements ILogger {
3444

3545
### debug
3646

37-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
47+
<MemberInfo kind="method" type={`(message: any) => void`} />
3848

3949
Logs a debug message.
50+
### debug
51+
52+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
53+
54+
Logs a debug message using template literals.
55+
### debug
56+
57+
<MemberInfo kind="method" type={`(messageOrStrings: any | TemplateStringsArray, values: any[]) => void`} />
58+
59+
4060
### error
4161

42-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
62+
<MemberInfo kind="method" type={`(message: any) => void`} />
4363

4464
Logs an error message.
65+
### error
66+
67+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
68+
69+
Logs an error message using template literals.
70+
### error
71+
72+
<MemberInfo kind="method" type={`(messageOrStrings: any | TemplateStringsArray, values: any[]) => void`} />
73+
74+
4575
### log
4676

47-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
77+
<MemberInfo kind="method" type={`(message: any) => void`} />
4878

4979
Logs a default message.
80+
### log
81+
82+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
83+
84+
Logs a default message using template literals.
85+
### log
86+
87+
<MemberInfo kind="method" type={`(messageOrStrings: any | TemplateStringsArray, values: any[]) => void`} />
88+
89+
5090
### info
5191

52-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
92+
<MemberInfo kind="method" type={`(message: any) => void`} />
5393

5494
Logs an info message.
95+
### info
96+
97+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
98+
99+
Logs an info message using template literals.
100+
### info
101+
102+
<MemberInfo kind="method" type={`(messageOrStrings: any | TemplateStringsArray, values: any[]) => void`} />
103+
104+
55105
### warn
56106

57-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
107+
<MemberInfo kind="method" type={`(message: any) => void`} />
58108

59109
Logs a warning message.
110+
### warn
111+
112+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
113+
114+
Logs a warning message using template literals.
115+
### warn
116+
117+
<MemberInfo kind="method" type={`(messageOrStrings: any | TemplateStringsArray, values: any[]) => void`} />
118+
119+
60120

61121

62122
</div>

apps/website/docs/api-reference/commandkit/interfaces/ilogger.mdx

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,41 +19,71 @@ ILogger interface for logging functionality.
1919

2020
```ts title="Signature"
2121
interface ILogger {
22-
log(...args: any[]): void;
23-
error(...args: any[]): void;
24-
warn(...args: any[]): void;
25-
info(...args: any[]): void;
26-
debug(...args: any[]): void;
22+
log(message: any): void;
23+
log(strings: TemplateStringsArray, ...values: any[]): void;
24+
error(message: any): void;
25+
error(strings: TemplateStringsArray, ...values: any[]): void;
26+
warn(message: any): void;
27+
warn(strings: TemplateStringsArray, ...values: any[]): void;
28+
info(message: any): void;
29+
info(strings: TemplateStringsArray, ...values: any[]): void;
30+
debug(message: any): void;
31+
debug(strings: TemplateStringsArray, ...values: any[]): void;
2732
}
2833
```
2934

3035
<div className="members-wrapper">
3136

3237
### log
3338

34-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
39+
<MemberInfo kind="method" type={`(message: any) => void`} />
3540

3641
Logs a message with the default log level.
42+
### log
43+
44+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
45+
46+
Logs a message with the default log level using template literals.
3747
### error
3848

39-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
49+
<MemberInfo kind="method" type={`(message: any) => void`} />
4050

4151
Logs an error message.
52+
### error
53+
54+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
55+
56+
Logs an error message using template literals.
4257
### warn
4358

44-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
59+
<MemberInfo kind="method" type={`(message: any) => void`} />
4560

4661
Logs a warning message.
62+
### warn
63+
64+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
65+
66+
Logs a warning message using template literals.
4767
### info
4868

49-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
69+
<MemberInfo kind="method" type={`(message: any) => void`} />
5070

5171
Logs an informational message.
72+
### info
73+
74+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
75+
76+
Logs an informational message using template literals.
5277
### debug
5378

54-
<MemberInfo kind="method" type={`(args: any[]) => void`} />
79+
<MemberInfo kind="method" type={`(message: any) => void`} />
5580

5681
Logs a debug message.
82+
### debug
83+
84+
<MemberInfo kind="method" type={`(strings: TemplateStringsArray, values: any[]) => void`} />
85+
86+
Logs a debug message using template literals.
5787

5888

5989
</div>

apps/website/docs/api-reference/commandkit/variables/logger.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
1313

1414
## Logger
1515

16-
<GenerationInfo sourceFile="packages/commandkit/src/logger/Logger.ts" sourceLine="58" packageName="commandkit" />
16+
<GenerationInfo sourceFile="packages/commandkit/src/logger/Logger.ts" sourceLine="59" packageName="commandkit" />
1717

1818
Default logger instance for CommandKit. This logger uses the DefaultLogger as its provider.
1919
The provider can be replaced with a custom logger implementation using the `configure` method.

0 commit comments

Comments
 (0)