UNPKG

@re-shell/cli

Version:

Full-stack development platform uniting microservices and microfrontends. Build complete applications with .NET (ASP.NET Core Web API, Minimal API), Java (Spring Boot, Quarkus, Micronaut, Vert.x), Rust (Actix-Web, Warp, Rocket, Axum), Python (FastAPI, Dja

111 lines (110 loc) 4 kB
/** * Shared Backend Template Generator System * Provides unified architecture for all backend framework templates */ import { ConfigTemplateEngine } from '../../../utils/template-engine'; export interface BackendTemplateConfig { language: string; framework: string; packageManager: string; buildTool?: string; testFramework: string; orm?: string; features: string[]; dependencies: Record<string, string>; devDependencies: Record<string, string>; scripts: Record<string, string>; dockerConfig?: DockerConfig; envVars?: Record<string, string>; } export interface DockerConfig { baseImage: string; workDir: string; exposedPorts: number[]; buildSteps: string[]; runCommand: string; multistage?: boolean; } export declare abstract class BackendTemplateGenerator { protected templateEngine: ConfigTemplateEngine; protected config: BackendTemplateConfig; constructor(config: BackendTemplateConfig); /** * Generate complete backend project structure */ generate(projectPath: string, options: any): Promise<void>; /** * Create standard directory structure */ protected createDirectoryStructure(projectPath: string): Promise<void>; /** * Generate common files across all backends */ protected generateCommonFiles(projectPath: string, options: any): Promise<void>; /** * Generate .gitignore with language-specific patterns */ protected generateGitignore(projectPath: string): Promise<void>; /** * Generate comprehensive README */ protected generateReadme(projectPath: string, options: any): Promise<void>; /** * Generate environment files */ protected generateEnvFiles(projectPath: string): Promise<void>; /** * Generate CI/CD workflows */ protected generateCICD(projectPath: string): Promise<void>; protected abstract generateLanguageFiles(projectPath: string, options: any): Promise<void>; protected abstract generateFrameworkFiles(projectPath: string, options: any): Promise<void>; protected abstract generateTestStructure(projectPath: string, options: any): Promise<void>; protected abstract generateHealthCheck(projectPath: string): Promise<void>; protected abstract generateAPIDocs(projectPath: string): Promise<void>; protected abstract generateDockerFiles(projectPath: string, options: any): Promise<void>; protected abstract generateDocumentation(projectPath: string, options: any): Promise<void>; protected abstract getLanguageSpecificIgnorePatterns(): string[]; protected abstract getLanguagePrerequisites(): string; protected abstract getInstallCommand(): string; protected abstract getDevCommand(): string; protected abstract getProdCommand(): string; protected abstract getTestCommand(): string; protected abstract getCoverageCommand(): string; protected abstract getLintCommand(): string; protected abstract getBuildCommand(): string; protected abstract getSetupAction(): string; } /** * Common utilities for all backend templates */ export declare class BackendTemplateUtils { /** * Generate JWT authentication middleware */ static generateJWTAuth(language: string): string; /** * Generate rate limiting middleware */ static generateRateLimit(language: string): string; /** * Generate logging configuration */ static generateLogging(language: string): string; /** * Generate database configuration */ static generateDatabaseConfig(language: string, orm: string): string; /** * Generate OpenAPI/Swagger documentation */ static generateOpenAPISpec(framework: string): string; /** * Generate health check endpoint */ static generateHealthEndpoint(language: string, framework: string): string; /** * Generate Docker configuration */ static generateDockerfile(config: DockerConfig): string; }