File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 ) ;
Original file line number Diff line number Diff line change @@ -26,6 +26,9 @@ export type HookRecord<T extends RouteHooks> = {
2626
2727export type HttpMethods = 'DELETE' | 'GET' | 'HEAD' | 'PATCH' | 'POST' | 'PUT' | 'OPTIONS' ;
2828export 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 ) ;
You can’t perform that action at this time.
0 commit comments