@ordojs/cli
Version:
Command-line interface for OrdoJS framework
150 lines • 4.2 kB
TypeScript
/**
* @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