@@ -18,7 +18,7 @@ export * from "../core/services.js";
1818type NodeServiceConfig = CoreServiceConfig ;
1919
2020export type AuthInput = CoreAuthInput & {
21- req : IncomingMessage ;
21+ req : IncomingMessage | Request ;
2222} ;
2323
2424/**
@@ -66,11 +66,19 @@ export async function authorizeNode(
6666 return await authorize ( authData , serviceConfig , cacheOptions ) ;
6767}
6868
69+ function isNodeHeaders (
70+ headers : IncomingHttpHeaders | Headers ,
71+ ) : headers is IncomingHttpHeaders {
72+ return typeof headers === "object" && ! ( "get" in headers ) ;
73+ }
74+
6975function getHeader (
70- headers : IncomingHttpHeaders ,
76+ headers : IncomingHttpHeaders | Headers ,
7177 headerName : string ,
7278) : string | null {
73- const header = headers [ headerName ] ;
79+ const header = isNodeHeaders ( headers )
80+ ? headers [ headerName ]
81+ : headers . get ( headerName ) ;
7482 if ( Array . isArray ( header ) ) {
7583 return header ?. [ 0 ] ?? null ;
7684 }
@@ -85,7 +93,7 @@ export function extractAuthorizationData(
8593 try {
8694 requestUrl = new URL (
8795 authInput . req . url || "" ,
88- `http://${ authInput . req . headers . host } ` ,
96+ `http://${ getHeader ( authInput . req . headers , " host" ) } ` ,
8997 ) ;
9098 } catch ( error ) {
9199 console . log ( "** Node URL Error **" , error ) ;
@@ -223,10 +231,10 @@ export function logHttpRequest({
223231 isAuthed,
224232 status : res . statusCode ,
225233 statusMessage,
226- sdkName : headers [ "x-sdk-name" ] ?? undefined ,
227- sdkVersion : headers [ "x-sdk-version" ] ?? undefined ,
228- platform : headers [ "x-sdk-platform" ] ?? undefined ,
229- os : headers [ "x-sdk-os" ] ?? undefined ,
234+ sdkName : getHeader ( headers , "x-sdk-name" ) ,
235+ sdkVersion : getHeader ( headers , "x-sdk-version" ) ,
236+ platform : getHeader ( headers , "x-sdk-platform" ) ,
237+ os : getHeader ( headers , "x-sdk-os" ) ,
230238 latencyMs,
231239 } ) ,
232240 ) ;
0 commit comments