New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@discordx/koa

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@discordx/koa

Use decorators with Koa with IOC

  • 1.2.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
59
increased by63.89%
Maintainers
1
Weekly downloads
 
Created
Source

⚠️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";
  // we are not returning next, to avoid further execution
  return;
}

@Router()
@Middleware(Log) // will execute for all sub routes
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.

Keywords

FAQs

Package last updated on 04 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc