Primeiros Passos
Bunstone é um framework baseado em decorators para Bun, inspirado no NestJS. Ele fornece uma forma estruturada de construir APIs escaláveis e fáceis de manter.
Instalação
Você pode criar um novo projeto usando nossa CLI:
bash
bunx @grupodiariodaregiao/bunstone new my-app
# or shorthand
bunx @grupodiariodaregiao/bunstone my-appAlternativamente: Use o Template Inicial
Você também pode começar clonando o repositório e usando o diretório starter:
bash
git clone https://github.com/diariodaregiao/bunstone.git
cp -r bunstone/starter my-app
rm -rf bunstone
cd my-app
rm -rf .git
bun installConfiguração Básica
Os projetos Bunstone seguem uma estrutura modular. Aqui está uma configuração básica:
src/main.ts
typescript
import "reflect-metadata";
import { AppStartup } from "@grupodiariodaregiao/bunstone";
import { AppModule } from "./app.module";
async function bootstrap() {
const app = await AppStartup.create(AppModule);
app.listen(3000);
}
bootstrap();src/app.module.ts
typescript
import { Module } from "@grupodiariodaregiao/bunstone";
import { AppController } from "./controllers/app.controller";
@Module({
controllers: [AppController],
})
export class AppModule {}Executando a Aplicação
bash
bun devSua aplicação estará rodando em http://localhost:3000.
Exemplo Completo
Confira um exemplo completo e independente de uma aplicação básica:
ts
import { Module, Controller, Get, Injectable, AppStartup } from "../../index";
@Injectable()
class AppService {
getHello(): string {
return "Hello from Bunstone!";
}
}
@Controller()
class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): string {
return this.appService.getHello();
}
}
@Module({
controllers: [AppController],
providers: [AppService],
})
class AppModule {}
const app = await AppStartup.create(AppModule);
app.listen(3000, () => {
console.log("Basic app is running on http://localhost:3000");
});