Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

koa-decorators

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

koa-decorators

Decorate koa

  • 1.4.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

koa-decorators

js-standard-style Build Status Coverage Status

Use decorators as single-controller-level koa middlewares or define some meta data for the controller, for now only support koa 2.

Installation

npm install koa-decorators

Decorators

Methods

Docs

@router

Specified the router information for the controller.

It accepts two arguments:

  • method: String, the HTTP method, required.
  • path: String, the path, required.
route(app, path)

Mount all routers specified by the @router decorator.

  • app: Object, an instance of Koa.
  • path: String, path to the directory of routers.
Example

Supposed that all your router files are put in ./apis:

// apis/user.js
'use strict'
const {router} = require('koa-decorators')

module.exports = class UserController {
  @router({method: 'GET', path: '/user'})
  async getUser (ctx) {
    ctx.body = 'user'
  }
}

And in outside app.js:

// app.js
'use strict'
const Koa = require('koa')
const {route} = require('koa-decorators')

const app = new Koa()

route(app, `${__dirname}/apis`)

app.listen(3003)

Then koa-decorators will help you to mount all routers in ./apis:

> curl localhost:3003/user
> user

@required

Add a koa middleware for the router to make sure some parameters should be in query-string or request body.

It accepts two arguments:

  • query: Array<String>, all keys required in query-string, optional.
  • body: Array<String>, all keys required in request body, optional.
Example
// apis/user.js
'use strict'
const {router, required} = require('koa-decorators')

module.exports = class UserController {
  @router({method: 'GET', path: '/user'})
  @required({query: 'id'})
  async getUserById (ctx) {
    ctx.body = 'user'
  }
}
> curl localhost:3003/user
> 412 Query: id required

> curl localhost:3003/user?id=1
> user

convert(fun)

Convert an async function to koa middleware decorator.

This method accepts one argument:

  • fun: Function, the async function to be converted.
Example
'use strict'
const {convert} = require('koa-decorators')

async function someFun (ctx, next) {
  await next()
}

const converted = convert(someFun)

module.exports = class {
  @router({method: 'GET', path: '/convert'})
  @converted
  async convert (ctx) {
    ctx.body = 'converted'
  }
}

Keywords

FAQs

Package last updated on 28 May 2016

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