@delysium/api-kit
TypeScript icon, indicating that this package has built-in type declarations

0.3.3 • Public • Published

@delysium/api-kit

Utility KIT for Express apis.

Installation

npm i @delysium/api-kit

Usage

  • Add Error middleware to your App
import express from "express"

const app = express()
app.use(errorMiddleware)
  • Declare API handler in your routes, removing Express from your Controllers logic
import {Router} from "express"
import {handle} from "../interfaces/api"

// your own controller
import UserController from "../controllers/user.controller"
import {validateRequest} from "../middleware"
const ctrl = new UserController()

const router = Router()
router.get("/users/:userId", handle.bind(ctrl.get))
router.post("/users", validateRequest(CreateRequest), handle.bind(ctrl.create))

export default router
  • Add routes to your App
import userRouter from "./routes/user.route"
app.use(userRouter)
  • Create your Controllers
    • You can now consider your controllers as simple methods without considering Express anymore
    • The success response will be handled in the router and the possible errors will be handled by the error middleware when HttpException are thrown in your code
import {PathRequest, AuthBodyRequest} from "../interfaces/api"

export default class UserController {
    public get = async (req: PathRequest<GetRequest>): Promise<UserResponse> => {
        const params = req.params
        return {}
    }
    public create = async (req: BodyRequest<CreateRequest>): Promise<UserResponse> => {
        const body = req.body
        return {}
    }
}

Readme

Keywords

Package Sidebar

Install

npm i @delysium/api-kit

Weekly Downloads

22

Version

0.3.3

License

MIT

Unpacked Size

82.5 kB

Total Files

101

Last publish

Collaborators

  • matinnikookar
  • hikernode