Skip to content

Commit 851a930

Browse files
committed
feat(http): track request counter
1 parent b3239ae commit 851a930

2 files changed

Lines changed: 7 additions & 0 deletions

File tree

src/http/request.http.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ export abstract class LambdaHttpRequest<
3535
public params: Rt['Params'];
3636

3737
private _isHeadersLoaded: boolean;
38+
/** Is this the first request for the lambda function */
39+
public isColdStart = false;
3840

3941
constructor(request: Request, ctx: Context, log: LogType) {
4042
super(request, ctx, log);

src/http/router.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ export type HookRecord<T extends RouteHooks> = {
2626

2727
export type HttpMethods = 'DELETE' | 'GET' | 'HEAD' | 'PATCH' | 'POST' | 'PUT' | 'OPTIONS';
2828
export class Router {
29+
/** Number of requests handled by this router */
30+
requestCount: number;
31+
2932
hooks: HookRecord<RouteHooks> = {
3033
/** Hooks to be run before every request */
3134
request: [],
@@ -111,6 +114,8 @@ export class Router {
111114
* Request flow: hook.request(req) -> requestHandler(req) -> hook.response(req, res)
112115
*/
113116
async handle(req: LambdaHttpRequest): Promise<LambdaHttpResponse> {
117+
req.isColdStart = this.requestCount === 0;
118+
this.requestCount++;
114119
// Trace cloudfront requests back to the cloudfront logs
115120
const cloudFrontId = req.header(HttpHeaderAmazon.CloudfrontId);
116121
const traceId = req.header(HttpHeaderAmazon.TraceId);

0 commit comments

Comments
 (0)