aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
98 lines (97 loc) • 3.08 kB
TypeScript
import type { IConstruct } from 'constructs';
import type { BundlingOptions } from './types';
import type { Architecture, AssetCode } from '../../aws-lambda';
import { Runtime } from '../../aws-lambda';
import * as cdk from '../../core';
/**
* Bundling properties
*/
export interface BundlingProps extends BundlingOptions {
/**
* Path to lock file
*/
readonly depsLockFilePath: string;
/**
* Entry file
*/
readonly entry: string;
/**
* The runtime of the lambda function
*/
readonly runtime: Runtime;
/**
* The system architecture of the lambda function
*/
readonly architecture: Architecture;
/**
* Path to project root
*/
readonly projectRoot: string;
/**
* Run compilation using `tsc` before bundling
*/
readonly preCompilation?: boolean;
/**
* Which option to use to copy the source files to the docker container and output files back
* @default - BundlingFileAccess.BIND_MOUNT
*/
readonly bundlingFileAccess?: cdk.BundlingFileAccess;
}
/**
* Bundling with esbuild
*/
export declare class Bundling implements cdk.BundlingOptions {
private readonly props;
/**
* esbuild bundled Lambda asset code
*/
static bundle(scope: IConstruct, options: BundlingProps): AssetCode;
static clearEsbuildInstallationCache(): void;
static clearTscInstallationCache(): void;
private static esbuildInstallation?;
private static tscInstallation?;
readonly image: cdk.DockerImage;
readonly entrypoint?: string[];
readonly command: string[];
readonly volumes?: cdk.DockerVolume[];
readonly volumesFrom?: string[];
readonly environment?: {
[key: string]: string;
};
readonly workingDirectory: string;
readonly user?: string;
readonly securityOpt?: string;
readonly network?: string;
readonly local?: cdk.ILocalBundling;
readonly bundlingFileAccess?: cdk.BundlingFileAccess;
private readonly projectRoot;
private readonly relativeEntryPath;
private readonly relativeTsconfigPath?;
private readonly relativeDepsLockFilePath;
private readonly externals;
private readonly packageManager;
constructor(scope: IConstruct, props: BundlingProps);
/**
* Builds the raw esbuild CLI arguments as an array of strings.
* No shell quoting — callers apply their own formatting.
*/
private buildEsbuildArgs;
private createBundlingCommand;
/**
* Produces shell-command steps for file operations in Docker bundling.
*/
private dockerFileOps;
/**
* Produces callback+spawn steps for file operations in local bundling.
*/
private localFileOps;
private getLocalBundlingProvider;
/**
* Creates the sequence of bundling steps.
*
* This is the single source of truth for the bundling pipeline, used by both
* Docker bundling (rendered to a shell command) and local bundling (executed directly).
*/
private createBundlingSteps;
private executeBundlingSteps;
}