express-scrubbr
v1.1.1
Published
Serialization middleware using TypeScript as the schema.
Downloads
7
Maintainers
Readme
Scrubbr Express TypeScript Serializer
Seamlessly serialize JSON data using TypeScript in express.
Setup & Installation
This middleware requires Scrubbr to be installed and setup.
npm i -S scrubbr
npm i -S express-scrubbr
Add middleware to your express app
import express from "express";
import Scrubbr from "scrubbr";
import scrubbrMiddleware from "express-scrubbr";
var app = express();
// Load typescript schema and set any scrubbr options
const scrubbr = new Scrubbr("./schema.ts");
app.use(scrubbrMiddleware(scrubbr));
Use it in your routes
app.get('/users', (req, res) => {
const userData = fetchDataHere();
resp.status(200)
.scrubbr('UserList') // serialize userData with the UserList typescript type
.send(userData);
}
Setting route-level options
You can pass scrubbr options at the route level:
resp
.status(200)
.scrubbr("UserList", { logLevel: LogLevel.DEBUG })
.send(userData);
You can also pass a custom scrubbr instance:
const customScrubbr = scrubbr.clone();
customScrubbr.addTypeSerializer("User", userTransformer);
resp.status(200).scrubbr("UserList", customScrubbr).send(userData);
Set global state
The middleware will clone the scrubbr instance, so if you want to add global state you can do that through the express response locals object.
For example, adding the authenticated user to the global state:
app.use(scrubbrMiddleware(scrubbr));
// Auth middleware
app.use((req, res, next) => {
const user = ... // do authy stuff here.
// Access the scrubbr instance on the response locals object
res.locals.scrubbr.setGlobalContext({ user }, true);
})