UNPKG

@ordojs/cli

Version:

Command-line interface for OrdoJS framework

150 lines 4.2 kB
/** * @fileoverview OrdoJS CLI - AWS Lambda deployment adapter * Adapter for deploying to AWS Lambda and API Gateway */ import { OptimizationResults } from '../../asset-optimizer.js'; import { DeploymentAdapter, DeploymentConfig, DeploymentResult } from '../adapter-interface.js'; /** * AWS Lambda-specific configuration */ export interface AWSLambdaConfig extends DeploymentConfig { /** * AWS Lambda settings */ settings?: { /** * AWS region */ region?: string; /** * Lambda function name */ functionName?: string; /** * Lambda memory size in MB */ memorySize?: number; /** * Lambda timeout in seconds */ timeout?: number; /** * Lambda runtime */ runtime?: string; /** * API Gateway stage name */ stageName?: string; /** * Whether to use AWS CloudFront */ useCloudFront?: boolean; /** * Whether to use AWS S3 for static assets */ useS3ForStaticAssets?: boolean; /** * S3 bucket name for static assets */ s3BucketName?: string; /** * Whether to use AWS CloudWatch for logs */ useCloudWatch?: boolean; /** * Whether to use AWS X-Ray for tracing */ useXRay?: boolean; }; } /** * AWS Lambda deployment adapter */ export declare class AWSLambdaAdapter implements DeploymentAdapter { /** * Adapter name */ name: string; /** * Adapter description */ description: string; /** * Validate AWS Lambda deployment configuration * @param config Deployment configuration * @returns Validation result */ validateConfig(config: DeploymentConfig): { valid: boolean; errors?: string[]; }; /** * Prepare AWS Lambda deployment * @param config Deployment configuration * @returns Deployment result */ prepareDeployment(config: DeploymentConfig): Promise<DeploymentResult>; /** * Generate Serverless Framework configuration * @param config AWS Lambda configuration * @returns Serverless Framework configuration YAML */ private generateServerlessConfig; /** * Generate AWS SAM template * @param config AWS Lambda configuration * @returns AWS SAM template YAML */ private generateSAMTemplate; /** * Generate AWS CloudFormation template * @param config AWS Lambda configuration * @returns AWS CloudFormation template YAML */ private generateCloudFormationTemplate; /** * Generate Lambda handler * @param config AWS Lambda configuration * @returns Lambda handler JavaScript code */ private generateLambdaHandler; /** * Generate package.json for Lambda * @param config AWS Lambda configuration * @returns package.json content */ private generatePackageJson; /** * Generate deployment script * @param config AWS Lambda configuration * @returns Deployment script content */ private generateDeployScript; /** * Get deployment instructions * @param config AWS Lambda configuration * @returns Deployment instructions */ private getDeploymentInstructions; /** * Optimize assets for AWS Lambda deployment * @param config Deployment configuration * @param outputDir Output directory * @returns Optimization results */ optimizeForDeployment(config: DeploymentConfig, outputDir: string): Promise<OptimizationResults>; /** * Get AWS Lambda-specific environment variables * @param config Deployment configuration * @returns Environment variables */ getEnvironmentVariables(config: DeploymentConfig): Record<string, string>; /** * Get AWS Lambda deployment command * @param config Deployment configuration * @returns Deployment command */ getDeployCommand(config: DeploymentConfig): string; } //# sourceMappingURL=aws-lambda-adapter.d.ts.map