1.5.0 • Published 3 years ago

@schornio/express-api-interface v1.5.0

Weekly downloads
6
License
ISC
Repository
github
Last release
3 years ago

@schornio/express-api-interface

Build Status

Router

import { HTTPNotFoundError, Router } from '@schornio/express-api-interface';

export const router = new Router();

router.get('/endpoint_sync', (request) => {
  const q = request.ensureQuery('q');
  const result = searchSync(q);
  return result;
});

router.get('/endpoint_async', async (request) => {
  const q = request.ensureQuery('q');
  const result = await searchAsync(q);
  return result;
});

router.get('/endpoint/:param1', (request) => {
  const q = request.ensureParam('param1');
  const result = searchSync(q);
  return result;
});

router.post('/endpoint', (request) => {
  const body = request.ensureBody(assertBodyFN);
  saveBody(body);
});

router.post('/redirect', (request) => {
  return new Redirect(Redirect.TemporaryRedirect, '/endpoint');
});

router.get('/error', async (request) => {
  throw new HTTPNotFoundError('Gets converted to a 404 response');
});

App

import { App } from '@schornio/express-api-interface';

const PORT = process.env.PORT || '80';

const app = new App();

app.addSetting('trust proxy', true);

app.registerRoutes([['/endpoint', router]]);

/* eslint-disable-next-line no-console */
app.start(PORT).then(() => console.log(`Listening on port ${PORT}...`));

Request

  • ensureBody<T>(assert: AssertBody<T>): T
  • ensureParam(name: string): string
  • ensureQuery(name: string): string
  • setPayload<T>(name: string, payload: T): void
  • getPayload<T>(name: string): T | undefined
  • ensurePayload<T>(name: string): T
  • getRequestCore(): ExpressRequest

Static

  • setPayload<T>(expressRequest: ExpressRequest, name: string, payload: T): void
  • getPayload<T>(expressRequest: ExpressRequest, name: string): T | undefined
  • ensurePayload<T>(expressRequest: ExpressRequest, name: string): T
1.5.0

3 years ago

1.4.0

3 years ago

1.3.0

3 years ago

1.2.0

3 years ago

1.2.1

3 years ago

1.1.0

3 years ago

1.0.5

3 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.0

4 years ago