Skip to content

Commit b0f21ef

Browse files
committed
📤 Export ConsoleLogger
1 parent b55da6c commit b0f21ef

File tree

5 files changed

+64
-8
lines changed

5 files changed

+64
-8
lines changed

README.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,21 @@ const count = await client.send(new Requests.RoomCount())
7777

7878
### Logging
7979

80+
By default, all logs are sent to the `NullLogger`, which discards them.
81+
To log messages, you can use our `ConsoleLogger`
82+
*(which wraps the native `console` object)*, set below:
83+
84+
```ts
85+
import { ConsoleLogger, VitreaClient } from 'vitrea-client'
86+
87+
const client = VitreaClient.create(
88+
{ /* ... */ },
89+
{
90+
log: new ConsoleLogger()
91+
}
92+
)
93+
```
94+
8095
If you already have a *logger* that implements the interface below, you can integrate
8196
it as follows:
8297

@@ -85,12 +100,7 @@ import { getLogger } from '@/core/logger'
85100
import { VitreaClient } from 'vitrea-client'
86101

87102
const client = VitreaClient.create(
88-
{
89-
host: '192.168.1.111',
90-
port: 1234,
91-
username: 'admin',
92-
password: 'secret',
93-
},
103+
{ /* ... */ },
94104
{
95105
log: getLogger('vBox')
96106
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vitrea-client",
3-
"version": "0.0.1",
3+
"version": "0.0.2",
44
"description": "Vitrea Smart Home API Client",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

src/core/ConsoleLogger.spec.ts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { ConsoleLogger } from './ConsoleLogger'
2+
3+
describe('ConsoleLogger', () => {
4+
const logger = new ConsoleLogger()
5+
6+
beforeEach(() => {
7+
jest.spyOn(global.console, 'log').mockImplementation()
8+
jest.spyOn(global.console, 'error').mockImplementation()
9+
jest.spyOn(global.console, 'warn').mockImplementation()
10+
jest.spyOn(global.console, 'info').mockImplementation()
11+
jest.spyOn(global.console, 'debug').mockImplementation()
12+
})
13+
14+
afterEach(() => jest.clearAllMocks())
15+
16+
it('[log] logs using console', () => {
17+
logger.log('Test log message', 'any')
18+
19+
expect(console.log).toHaveBeenCalledWith('Test log message', { level: 'any' })
20+
})
21+
22+
it('[error] logs using console', () => {
23+
logger.error('Test error message', 'arg1', 'arg2')
24+
25+
expect(console.error).toHaveBeenCalledWith('Test error message', 'arg1', 'arg2')
26+
})
27+
28+
it('[warn] logs using console', () => {
29+
logger.warn('Test warn message', 'arg1', 'arg2')
30+
31+
expect(console.warn).toHaveBeenCalledWith('Test warn message', 'arg1', 'arg2')
32+
})
33+
34+
it('[info] logs using console', () => {
35+
logger.info('Test info message', 'arg1', 'arg2')
36+
37+
expect(console.info).toHaveBeenCalledWith('Test info message', 'arg1', 'arg2')
38+
})
39+
40+
it('[debug] logs using console', () => {
41+
logger.debug('Test debug message', 'arg1', 'arg2')
42+
43+
expect(console.debug).toHaveBeenCalledWith('Test debug message', 'arg1', 'arg2')
44+
})
45+
})

src/core/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ export { DataGram } from './DataGram'
22
export { NullLogger } from './NullLogger'
33
export { BaseRequest } from './BaseRequest'
44
export { BaseResponse } from './BaseResponse'
5+
export { ConsoleLogger } from './ConsoleLogger'
56
export { LoggerContract } from './LoggerContract'

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export { Events } from './utilities/Events'
1+
export { ConsoleLogger } from './core'
22
export { VitreaClient } from './VitreaClient'
33
export { ProtocolVersion } from './utilities/ProtocolVersion'
44
export * as Enums from './utilities/Enums'

0 commit comments

Comments
 (0)