1.1.3 • Published 2 months ago

@andrewcaires/express v1.1.3

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

npm downloads size license

express

Decorators for express

Installation

The module is now available on npm! npm i @andrewcaires/express

Example usage

// index.ts

import {

  Application,
  Argument,
  Body,
  Controller,
  Delete,
  Get,
  Middleware,
  Next,
  Params,
  Post,
  Put,
  Res,
  Responses

} from "@andrewcaires/express";
import { NextFunction, Response } from "express";

@Controller("/test")
class TestController {

  public middleware(
    @Argument() arg: string,
    @Next() next: NextFunction
  ) {

    console.log("middleware", arg);

    return next();
  }

  @Post()
  @Middleware("middleware", "add")
  public add(
    @Res() res: Response,
    @Body() body: any
  ) {

    return Responses.data(res, body);
  }

  @Get()
  @Middleware("middleware", "all")
  public all(
    @Res() res: Response
  ) {

    return Responses.list(res, [1, 2, 3, 4, 5, 6, 7, 8, 9]);
  }

  @Delete("/:id")
  @Middleware("middleware", "del")
  public del(
    @Res() res: Response,
    @Params("id") id: string
  ) {

    return Responses.success(res, id);
  }

  @Get("/:id")
  @Middleware("middleware", "get")
  public get(
    @Res() res: Response,
    @Params("id") id: string
  ) {

    return Responses.data(res, { id, name: "test" });
  }

  @Put("/:id")
  @Middleware("middleware", "set")
  public set(
    @Res() res: Response,
    @Params("id") id: string
  ) {

    return Responses.success(res, id);
  }
}

const main = async () => {

  const app = new Application([

    new TestController,

  ], {

    path: "/api",

  });

  await app.listen();
};

main().catch(console.log);

Links

License

1.1.1

2 months ago

1.1.0

2 months ago

1.1.3

2 months ago

1.1.2

2 months ago

1.0.10

5 months ago

1.0.9

5 months ago

1.0.8

6 months ago

1.0.7

7 months ago

1.0.6

9 months ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago