New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

express-scrubbr

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-scrubbr

Serialization middleware using TypeScript as the schema.

  • 1.1.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

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

Keywords

FAQs

Package last updated on 06 Jan 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc