1.1.1 • Published 2 years ago

express-scrubbr v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Scrubbr Express TypeScript Serializer

Seamlessly serialize JSON data using TypeScript in express.

Simple Example

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);
})

License

MIT

1.1.1

2 years ago

1.1.0

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago