UNPKG

@serverless-stack/nextjs-lambda

Version:

Provides handlers that can be used in CloudFront Lambda@Edge to deploy next.js applications to the edge

73 lines (72 loc) 2.14 kB
import type { CloudFrontRequest, CloudFrontEvent, CloudFrontResponse } from "aws-lambda"; import { Manifest, ApiManifest, PageManifest } from "@serverless-stack/nextjs-core"; export { ImageConfig, ImagesManifest, RoutesManifest } from "@serverless-stack/nextjs-core"; export declare type OriginRequestApiHandlerManifest = ApiManifest & { enableHTTPCompression?: boolean; }; export declare type OriginRequestDefaultHandlerManifest = PageManifest & { logLambdaExecutionTimes?: boolean; enableHTTPCompression?: boolean; regenerationQueueName?: string; }; export declare type OriginRequestImageHandlerManifest = Manifest & { enableHTTPCompression?: boolean; domainRedirects?: { [key: string]: string; }; }; export declare type OriginRequestEvent = { Records: [ { cf: { request: CloudFrontRequest; config: CloudFrontEvent["config"]; }; } ]; }; export declare type OriginResponseEvent = { Records: [ { cf: { request: CloudFrontRequest; response: CloudFrontResponse; config: CloudFrontEvent["config"]; }; } ]; }; export interface RegenerationEvent { pagePath: string; basePath: string | undefined; region: string; bucketName: string; cloudFrontEventRequest: AWSLambda.CloudFrontRequest; } export declare type PreRenderedManifest = { version: 2; routes: { [route: string]: { initialRevalidateSeconds: number | false; srcRoute: string | null; dataRoute: string; }; }; dynamicRoutes: { [route: string]: { routeRegex: string; fallback: string | false; dataRoute: string; dataRouteRegex: string; }; }; preview: { previewModeId: string; previewModeSigningKey: string; previewModeEncryptionKey: string; }; }; export declare type PerfLogger = { now: () => number | undefined; log: (metricDescription: string, t1?: number, t2?: number) => void; };