artmapper
Version:
Spring Boot clone for Node.js with TypeScript/JavaScript - JPA-like ORM, Lombok decorators, dependency injection, and MySQL support
62 lines • 1.65 kB
TypeScript
import 'reflect-metadata';
import { Express } from 'express';
import { DatabaseConfig } from '../database/DatabaseConfig';
export interface ApplicationConfig {
port?: number;
database?: DatabaseConfig;
controllers?: (new (...args: any[]) => any)[];
services?: (new (...args: any[]) => any)[];
repositories?: (new (...args: any[]) => any)[];
components?: (new (...args: any[]) => any)[];
entities?: (new (...args: any[]) => any)[];
basePath?: string;
autoGenerateSchema?: boolean;
}
export declare class SpringApplication {
private app;
private container;
private databaseManager;
private config;
constructor(config?: ApplicationConfig);
/**
* Setup Express middleware
*/
private setupMiddleware;
/**
* Initialize database connection
*/
initializeDatabase(): Promise<void>;
/**
* Register all components
*/
registerComponents(): void;
/**
* Register all routes from controllers
*/
registerRoutes(): void;
/**
* Create a route handler with parameter injection
*/
private createRouteHandler;
/**
* Add custom middleware
*/
use(middleware: any): void;
/**
* Get the Express app instance
*/
getApp(): Express;
/**
* Start the application
*/
run(): Promise<void>;
/**
* Stop the application
*/
stop(): Promise<void>;
}
/**
* Static method to run the application
*/
export declare function run(applicationClass: new () => SpringApplication, config?: ApplicationConfig): Promise<void>;
//# sourceMappingURL=SpringApplication.d.ts.map