Skip to content

Commit

Permalink
feat: improved trace logging
Browse files Browse the repository at this point in the history
  • Loading branch information
panuhorsmalahti committed Jan 21, 2025
1 parent d03d07b commit 8100b6d
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/stream-impersonator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ export class StreamImpersonator extends Transform {
}

this.push(`${info.method} ${info.url} HTTP/${info.versionMajor}.${info.versionMinor}\r\n`);
logger.trace(`onHeadersComplete: ${info.method} ${info.url} HTTP/${info.versionMajor}.${info.versionMinor}\r\n`);

const headers = chunk(info.headers as unknown as string[], 2).map((val) => [val[0].trim().toLowerCase(), val[1]]) as Headers;

Expand Down Expand Up @@ -74,6 +75,10 @@ export class StreamImpersonator extends Transform {

this.upgrade = info.upgrade || !!headers.find((h) => h[0] === "connection" && h[1].toLowerCase() === "upgrade");

if (this.upgrade) {
logger.trace("upgrade in onHeadersComplete");
}

return 0;
};

Expand All @@ -82,16 +87,21 @@ export class StreamImpersonator extends Transform {
start: number,
len: number,
) => {
logger.trace("onBody");
this.chunks.push(bodyChunk.subarray(start, start + len));
};

this.httpParser.onMessageComplete = () => {
logger.trace("onMessageComplete");
this.flushChunks();
};
}

private flushChunks() {
logger.trace("flushChunks");

if (this.chunks.length > 0) {
logger.trace("flushChunks -> writing chunks");
this.push(Buffer.concat(this.chunks));
this.chunks = [];
}
Expand All @@ -112,6 +122,7 @@ export class StreamImpersonator extends Transform {
}

if (this.upgrade) {
logger.trace("upgrade in _transform");
this.push(chunk);

return callback();
Expand Down

0 comments on commit 8100b6d

Please sign in to comment.