@lcdev/api-fields-middleware
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

API Fields Middlware

Licensed under MPL 2.0 Build Status npm

Use API Fields easily in Koa.

yarn add @lcdev/api-fields-middleware@0.1
import { ApiField } from '@lcdev/api-fields';

// somewhere, where your model is defined
class EntityA {
  @ApiField()
  publicFieldA: any;

  @ApiField()
  publicFieldB: any;

  privateFieldA: any;
  privateFieldB: any;
}

import { extractApiFieldsMiddleware } from '@lcdev/api-fields-middleware';

// somewhere, where you have a koa router
app
  .get('/foo/bar', extractApiFieldsMiddleware(EntityA), async (ctx, next) => {
    // the body ends up as an object that is, or looks like an 'EntityA'
    ctx.body = new EntityA();

    return next();
  });

This will perform the extract with ApiFields of EntityA, after your router middleware has run. This will only apply if the response is a 200.

Features:

  • Supports extractApiFieldsMiddleware([EntityA]) to imply that the api response is an array of EntityA
  • Supports extractApiFieldsMiddleware({ ... }, true) to pass a "raw" Extraction object to use (you might use getApiFields with an extension here)

Readme

Keywords

none

Package Sidebar

Install

npm i @lcdev/api-fields-middleware

Weekly Downloads

0

Version

0.1.0

License

MPL-2.0

Unpacked Size

21.8 kB

Total Files

6

Last publish

Collaborators

  • jbrandtlc
  • joelgallant-me
  • servalldev
  • gregnr