Use API Fields easily in Koa.
yarn add @lcdev/[email protected]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"Extractionobject to use (you might usegetApiFieldswith an extension here)