Runtime da Aplicação
Esta página cobre a API de runtime que inicializa uma aplicação Bunstone e as opções que afetam o comportamento da app.
AppStartup.create()
AppStartup.create(RootModule, options?) inicializa o grafo de dependências, registra controllers, middleware, schedulers, filas e retorna uma referência da aplicação.
import "reflect-metadata";
import { AppStartup } from "@grupodiariodaregiao/bunstone";
import { AppModule } from "./app.module";
const app = await AppStartup.create(AppModule, {
cors: {
origin: "http://localhost:5173",
credentials: true,
},
viewsDir: "src/views",
swagger: {
path: "/docs",
documentation: {
info: {
title: "Bunstone API",
version: "1.0.0",
},
},
},
rateLimit: {
enabled: true,
max: 100,
windowMs: 60_000,
},
});
app.listen(3000);Valor de retorno
AppStartup.create() resolve para um objeto com:
listen(port)para iniciar o servidor HTTPgetElysia()para acessar a instância interna do Elysia
Opções de Runtime
cors
Encaminha as opções diretamente para @elysiajs/cors.
const app = await AppStartup.create(AppModule, {
cors: {
origin: ["https://example.com"],
methods: ["GET", "POST"],
credentials: true,
},
});viewsDir
Quando definido, o Bunstone percorre o diretório e gera bundles das views React usadas por @Render() para hidratação SSR.
const app = await AppStartup.create(AppModule, {
viewsDir: "src/views",
});swagger
Habilita a Swagger UI embutida e o endpoint JSON da spec.
const app = await AppStartup.create(AppModule, {
swagger: {
path: "/docs",
documentation: {
info: {
title: "Minha API",
version: "1.0.0",
},
},
auth: {
username: "admin",
password: "secret",
},
},
});rateLimit
Aplica um rate limit global que pode ser sobrescrito por @RateLimit().
const app = await AppStartup.create(AppModule, {
rateLimit: {
enabled: true,
max: 1000,
windowMs: 60_000,
},
});Arquivos Estáticos
O Bunstone serve automaticamente o diretório public/ sob /public.
- Arquivo local:
public/logo.png - URL pública:
/public/logo.png
Se public/ ainda não existir, o Bunstone cria a pasta durante a inicialização.
Tratamento de Erros
Comportamento embutido durante startup/runtime:
- Instâncias de
HttpExceptionretornam o status code e body configurados. - Erros de validação do Zod são normalizados para status
400comfieldemessage. - Erros desconhecidos retornam status
500.