A função createElysiaApplication inicializa o módulo raiz e retorna uma instância do Elysia pronta para escutar requisições.
Uso Básico
typescript
import { createElysiaApplication } from "nestelia";
const app = await createElysiaApplication(AppModule);
app.listen(3000);O que createElysiaApplication Faz
- Resolve a árvore de módulos — processa imports, providers e controllers recursivamente
- Registra providers — adiciona todos os providers ao container de DI
- Instancia controllers — cria instâncias de controllers com dependências injetadas
- Registra rotas — mapeia métodos decorados para rotas do Elysia
- Executa hooks de ciclo de vida — chama
onModuleIniteonApplicationBootstrapem ordem - Retorna um ElysiaNestApplication — pronto para chamar
.listen()
Com Microserviços
Ao usar o pacote de microserviços, createElysiaApplication retorna um ElysiaNestApplication que suporta modo híbrido HTTP + microserviço:
typescript
import { createElysiaApplication } from "nestelia";
import { Transport } from "nestelia/microservices";
const app = await createElysiaApplication(AppModule);
app.connectMicroservice({
transport: Transport.REDIS,
options: { host: "localhost", port: 6379 },
});
await app.startAllMicroservices();
app.listen(3000);Desligamento Gracioso
O nestelia suporta hooks de ciclo de vida para desligamento. Quando o processo recebe um sinal de terminação:
- Hooks
BeforeApplicationShutdownsão executados primeiro - Hooks
OnModuleDestroysão executados para limpeza - Hooks
OnApplicationShutdownsão executados por último
typescript
@Injectable()
class DatabaseService implements OnModuleDestroy {
async onModuleDestroy() {
await this.connection.close();
}
}