0.5.0 • Published 1 year ago

@finwo/router v0.5.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

@finwo/router

license npm version

@finwo/router is a TypeScript decorator wrapper with pluggable routers, intended to make setting up a new api cleaner.

Installation

This package can not be used stand-alone and will need an adapter to hand off the controllers' routes to the actual router.

To start using @finwo/router, install the required packages via NPM:

npm install --save @finwo/router

This package makes use of decorators and decorator metadata using the reflect-metadata package, which in turn means this package is not compatible with TS > 5.

Don't forget to enable emitting decorator metadata in your TypeScript config. Add these two lines to your tsconfig.json file under the compilerOptions key:

"emitDecoratorMetadata": true,
"experimentalDecorators": true,

Usage

Basic usage is as follows:

// some-controller.ts
import { Request, Response } from 'router-library';
import { Controller, Req, Res, Get } from '@finwo/router';

@Controller()
export class SomeController {

  @Get()
  @Middleware(require('cors')())
  indexAction(@Res() res: Response) {
    res.send({
      ok: true,
    });
  }

  @Get('/other')
  otherAction(@Res() res: Response) {
    res.send({
      ok: true,
    });
  }
}

Any controllers will be registered within the DI container of @finwo/di, allowing you to implement dependency injection into your controllers to decouple from your dependencies.

Middleware

Express-style middleware can be registered, but may not be supported by all adapters.

0.5.0

1 year ago

0.4.1

1 year ago

0.4.0

1 year ago

0.4.2

1 year ago

0.2.4

1 year ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.1

1 year ago

0.2.0

1 year ago