⚠️Deprecation Warning
I am deprecating this package because it will not receive long-term maintenance. If you are using this package, I highly recommend migrating to NestJS, which is the best alternative. Thank you for your understanding.
Best regards, Vijay Meena
Create a discord bot with TypeScript and Decorators!
📖 Introduction
This module is an extension of koa, so the internal behavior (methods, properties, ...) is the same
This library allows you to use TypeScript decorators on koa, it simplifies your code and improves the readability!
💻 Installation
Version 16.6.0 or newer of Node.js is required
npm install koa @koa/router @discordx/koa
yarn add koa @koa/router @discordx/koa
Install required types
npm install --save-dev @types/koa__router
yarn add --dev @types/koa__router
🆕 Features
@Router
to create a router on class- Support multiple server in a single nodejs instance (@Api)
- Support TSyringe
- Support ECMAScript
📟 @Get / @Post ...
Decorators for all koa methods, @Get @Post @All @Delete @Head @Link @Unlink @Options
KOA instance available at the end of each handler's arguments
Example
@Router()
class Example {
@Get("/")
handle(ctx: RouterContext, next: Next, koa: Koa): Promise<Next> {
ctx.body = "Hello world!";
return next();
}
}
📟 @Middleware
If you add middleware to a class, it will be executed on each route within it.
Example
function Log(ctx: RouterContext, next: Next) {
console.log(`request: ${ctx.URL}`);
return next();
}
function Authenticated(ctx: RouterContext, next: Next) {
ctx.body = "unauthorized required";
return;
}
@Router()
@Middleware(Log)
class Example {
@Get("/")
hello(ctx: RouterContext, next: Next): Promise<Next> {
ctx.body = "Hello world!";
return next();
}
@Get("/auth")
@Middleware(Authenticated)
auth(ctx: RouterContext, next: Next): Promise<Next> {
ctx.body = "Hello world!";
return next();
}
}
📜 Documentation
☎️ Need help?
💖 Thank you
You can support discordx by giving it a GitHub star.