1.5.1 • Published 7 months ago

ekspres v1.5.1

Weekly downloads
-
License
ISC
Repository
github
Last release
7 months ago

ekspres

Listen

import { App } from 'ekspres';

const app = new App();

app.setPort(3000);
app.listen((port: number) => console.log(`App running at ${port}`));

Get Server

import { App } from 'ekspres';

const app = new App();

console.log(app.getServer()); // http.Server

Middleware

import { App } from 'ekspres';

const app = new App();

app.setMiddlewares([
  (req, res, next) => {
    console.log('middleware 1');
    next();
  },
  (req, res, next) => {
    console.log('middleware 2');
    next();
  },
]);

Route

import { App, Router } from 'ekspres';

const app = new App();
const testRoute = new Router()
  .setPath('/')
  .setMethod('get')
  .handle(async () => 'Ok')
  .make();

app.setRoutes([testRoute]);

Route Group

import { App, RouterGroup } from 'ekspres';

const app = new App();
const testRoute = new RouterGroup()
  .handle({
    path: '/',
    method: 'Get',
    handler: async () => 'Ok',
  })
  .handle({
    path: '/',
    method: 'post',
    handler: async () => 'Ok',
  })
  .make();

app.setRoutes([testRoute]);

Throw Http Error

import { App, Router, HttpError } from 'ekspres'

const app = new App
const testRoute = new Router()
    .setPath('/')
    .setMethod('get')
    .handle(async () => {
        throw new HttpError(
          {
            name: 'Forbidden',
            message: 'You dont have access',
          },
          403,
        ),
    })
    .make()

app.setRoutes([
    testRoute
])

Query Middleware

import { App, Router, createQueryMiddleware } from 'ekspres'

const app = new App();

app.setRoutes([
  new Router()
    .setPath('/')
    .setMethod('get')
    .addMiddlewares([createQueryMiddleware().forAll])
    .handle(async (context) => context?.req.query)
    .make(),
  new Router()
    .setPath('/')
    .setMethod('get')
    .addMiddlewares([createQueryMiddleware().forSingle])
    .handle(async (context) => context?.req.query)
    .make();
]);

Request Validator

import {
  App,
  Router,
  Request,
  RequestPath,
  createRequestValidator,
} from 'ekspres';

const app = new App();
const router = new Router();

class CreateUserRequest extends Request {
  path: RequestPath = 'body'; // 'params' | 'query' | 'body' (default body)

  schema(): Schema {
    return Joi.object({
      email: Joi.string().email().required(),
    });
  }
}

app.setRoutes([
  router
    .setPath('/')
    .setMethod('post')
    .addMiddlewares([createRequestValidator(CreateUserRequest)])
    .handle(async (context) => context.body)
    .make(),
]);
1.5.1

7 months ago

1.5.0

7 months ago

1.4.1

7 months ago

1.4.0

7 months ago

1.3.1

7 months ago

1.3.0

7 months ago

1.2.0

7 months ago

1.1.0

7 months ago

1.0.0

7 months ago