Skip to content

Commit 8606faa

Browse files
committed
feat(pino): enhance getLogger util type
1 parent 2d2dd85 commit 8606faa

File tree

3 files changed

+14
-11
lines changed

3 files changed

+14
-11
lines changed

apps/content/docs/integrations/pino.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,20 @@ npm run dev | npx pino-pretty
7777
You can access the logger from the context object using the `getLogger` function:
7878

7979
```ts
80-
import { getLogger } from '@orpc/experimental-pino'
80+
import { getLogger, LoggerContext } from '@orpc/experimental-pino'
8181

82-
const procedure = os.handler(({ context }) => {
83-
const logger = getLogger(context) // [!code highlight]
82+
interface ORPCContext extends LoggerContext {} // [!code highlight]
8483

85-
logger?.info('Processing request')
86-
logger?.debug({ userId: 123 }, 'User data')
84+
const procedure = os
85+
.$context<ORPCContext>()
86+
.handler(({ context }) => {
87+
const logger = getLogger(context) // [!code highlight]
8788

88-
return { success: true }
89-
})
89+
logger?.info('Processing request')
90+
logger?.debug({ userId: 123 }, 'User data')
91+
92+
return { success: true }
93+
})
9094
```
9195

9296
## Providing Custom Logger per Request

packages/pino/src/context.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { CONTEXT_LOGGER_SYMBOL, getLogger } from './context'
33

44
it('getLogger', async () => {
55
expect(getLogger({})).toBeUndefined()
6-
expect(getLogger({ something: true })).toBeUndefined()
6+
expect(getLogger({ something: true } as any)).toBeUndefined()
77

88
const logger = pino()
99
expect(getLogger({ [CONTEXT_LOGGER_SYMBOL]: logger })).toBe(logger)

packages/pino/src/context.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import type { Logger } from 'pino'
2-
import { get } from '@orpc/shared'
32

43
export const CONTEXT_LOGGER_SYMBOL: unique symbol = Symbol('ORPC_PINO_CONTEXT_LOGGER_SYMBOL')
54

65
export interface LoggerContext {
76
[CONTEXT_LOGGER_SYMBOL]?: Logger
87
}
98

10-
export function getLogger(context: object): Logger | undefined {
11-
return get(context, [CONTEXT_LOGGER_SYMBOL]) as Logger | undefined
9+
export function getLogger(context: LoggerContext): Logger | undefined {
10+
return context[CONTEXT_LOGGER_SYMBOL]
1211
}

0 commit comments

Comments
 (0)