@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
TypeScript
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;
};