@serverless-stack/nextjs-lambda
Version:
Provides handlers that can be used in CloudFront Lambda@Edge to deploy next.js applications to the edge
63 lines (62 loc) • 3.23 kB
TypeScript
/// <reference types="node" />
import { NodeFileTraceReasons } from "@vercel/nft";
import { OriginRequestDefaultHandlerManifest, OriginRequestApiHandlerManifest, RoutesManifest, OriginRequestImageHandlerManifest } from "./types";
import { Job } from "@vercel/nft/out/node-file-trace";
import { NextConfig } from "@serverless-stack/nextjs-core/dist/build";
export declare const DEFAULT_LAMBDA_CODE_DIR = "default-lambda";
export declare const API_LAMBDA_CODE_DIR = "api-lambda";
export declare const IMAGE_LAMBDA_CODE_DIR = "image-lambda";
export declare const REGENERATION_LAMBDA_CODE_DIR = "regeneration-lambda";
export declare const ASSETS_DIR = "assets";
declare type BuildOptions = {
args?: string[];
cwd?: string;
env?: NodeJS.ProcessEnv;
cmd?: string;
useServerlessTraceTarget?: boolean;
logLambdaExecutionTimes?: boolean;
domainRedirects?: {
[key: string]: string;
};
minifyHandlers?: boolean;
enableHTTPCompression?: boolean;
handler?: string;
authentication?: {
username: string;
password: string;
} | undefined;
resolve?: (id: string, parent: string, job: Job, cjsResolve: boolean) => string | string[];
baseDir?: string;
cleanupDotNext?: boolean;
assetIgnorePatterns?: string[];
regenerationQueueName?: string;
};
declare class Builder {
nextConfigDir: string;
nextStaticDir: string;
dotNextDir: string;
serverlessDir: string;
outputDir: string;
buildOptions: BuildOptions;
constructor(nextConfigDir: string, outputDir: string, buildOptions?: BuildOptions, nextStaticDir?: string);
readPublicFiles(assetIgnorePatterns: string[]): Promise<string[]>;
readPagesManifest(): Promise<{
[key: string]: string;
}>;
copyLambdaHandlerDependencies(fileList: string[], reasons: NodeFileTraceReasons, handlerDirectory: string, base: string): Promise<void>[];
isSSRJSFile(buildManifest: OriginRequestDefaultHandlerManifest, relativePageFile: string): boolean;
processAndCopyRoutesManifest(source: string, destination: string): Promise<void>;
processAndCopyHandler(handlerType: "api-handler" | "default-handler" | "image-handler" | "regeneration-handler", destination: string, shouldMinify: boolean): Promise<void>;
copyTraces(buildManifest: OriginRequestDefaultHandlerManifest, destination: string): Promise<void>;
buildDefaultLambda(buildManifest: OriginRequestDefaultHandlerManifest): Promise<void[]>;
buildApiLambda(apiBuildManifest: OriginRequestApiHandlerManifest): Promise<void[]>;
buildRegenerationHandler(buildManifest: OriginRequestDefaultHandlerManifest): Promise<void>;
copyChunks(buildDir: string): Promise<void>;
buildImageLambda(buildManifest: OriginRequestImageHandlerManifest): Promise<void>;
readNextConfig(): Promise<NextConfig | undefined>;
buildStaticAssets(defaultBuildManifest: OriginRequestDefaultHandlerManifest, routesManifest: RoutesManifest, ignorePatterns: string[]): Promise<void[]>;
cleanupDotNext(shouldClean: boolean): Promise<void>;
build(debugMode?: boolean): Promise<void>;
runThirdPartyIntegrations(defaultLambdaDir: string, regenerationLambdaDir: string): Promise<void>;
}
export default Builder;