Skip to content

Commit dc51b1b

Browse files
committed
feat: add headers context to server actions
1 parent 2c1eb3b commit dc51b1b

File tree

4 files changed

+225
-63
lines changed

4 files changed

+225
-63
lines changed

packages/core/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
"description": "Instant Stripe-level observability for your Next.js project",
55
"repository": "useflytrap/flytrap-logs",
66
"engines": {
7-
"node": ">=18"
8-
},
7+
"node": ">=18"
8+
},
99
"exports": {
1010
".": {
1111
"types": "./dist/index.d.ts",
@@ -38,6 +38,7 @@
3838
"release": "np"
3939
},
4040
"dependencies": {
41+
"next": "^14.2.1",
4142
"serialize-error": "^11.0.3",
4243
"zod": "^3.22.4"
4344
},

packages/core/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ export function createFlytrapLogger<T>({
145145
// Request utils
146146
catchUncaughtRoute<
147147
RequestType extends Request,
148-
T extends { params: Record<string, unknown> }
148+
T extends { params: Record<string, unknown> },
149149
>(
150150
fn: (request: RequestType, context: T) => Promise<Response> | Response,
151151
options?: Partial<z.infer<typeof baseLogSchema>>

packages/core/src/request-utils.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { baseLogSchema } from "./schemas"
33
import { z } from "zod"
44
import { headersToRecord, parseJsonOrPassthrough } from "./utils"
55
import { AddContextFn, FlushFn } from "./types"
6+
import { headers } from "next/headers"
67

78
export function response(
89
body: BodyInit,
@@ -78,14 +79,14 @@ export async function parseText(
7879

7980
export function catchUncaughtRoute<
8081
RequestType extends Request,
81-
T extends { params: Record<string, unknown> }
82+
T extends { params: Record<string, unknown> },
8283
>(
8384
fn: (request: RequestType, context: T) => Promise<Response> | Response,
8485
addContext: AddContextFn<z.infer<typeof baseLogSchema>>,
8586
flush: FlushFn,
8687
options?: Partial<z.infer<typeof baseLogSchema>>
87-
): (request: Request, context: T) => Promise<Response> {
88-
return async (request: Request, context: T) => {
88+
): (request: RequestType, context: T) => Promise<Response> {
89+
return async (request: RequestType, context: T) => {
8990
const t0 = Date.now()
9091
if (options) addContext(options)
9192
try {
@@ -137,6 +138,9 @@ export function catchUncaughtAction<T extends (...args: any[]) => Promise<any>>(
137138
const t0 = Date.now()
138139
if (options) addContext(options)
139140
try {
141+
addContext({
142+
req_headers: headersToRecord(headers()),
143+
})
140144
addContext({
141145
req: args,
142146
})

0 commit comments

Comments
 (0)