A Nuxt module · no reflect-metadata
NestJS ergonomics for Nuxt & Nitro
A Nuxt module that gives you NestJS-looking decorated controller classes. A build-time codegen reads them as an AST and emits the Nitro route files + the awilix DI manifest — so at runtime there's nothing to reflect on.
One feature, fully wired
That's the whole feature — roost generates the route delegates and the DI container. You never hand-write either.
@Controller('projects')
@UseGuards(MemberGuard)
export class ProjectsController {
constructor(private readonly projects: ProjectsService) {}
@Get(':id')
get(@Param() id: string) {
return this.projects.get(id) // params injected as arguments, Nest-style
}
@Post()
create(@Body(createProjectSchema) dto: CreateProjectDto) {
return this.projects.create(dto.name) // @Body(schema) injects the validated body
}
}