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

@compassdigital/middleware

Package Overview
Dependencies
Maintainers
43
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@compassdigital/middleware

CDL Provider middleware module

  • 4.0.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
43
Weekly downloads
 
Created
Source

compassdigital.middleware

CDL Provider middleware module

  • This middleware module extends the CDL core provider with the ability to run functions before requests get handled
  • This can be handled at the provider level (for every incoming request) or at the event level (for particular events, ex: "post_order")

Usage

Registering Provider-level middleware

const Middleware = require("@compassdigital/middleware").handler;
const ActionLogger = require("@compassdigital/middleware").fn.ActionLogger;

/**
 * Inside the Provider constructor.
 * The "bind" call is needed for this particular function but
 * is not needed to make any custom middleware work with this
 * package.
 */
this.middleware = new Middleware(ActionLogger.bind(this));

Registering handler-level middleware

const Middleware = require("@compassdigital/middleware").handler;

// Inside the domain-specific Provider
function bodyLogger (req, res, next) {
	/**
	 * req: the request object from the lambda event
	 * res: the response object currently only holds a reference to user-defined local variables specific to the lifecycle of a single request
	 * next: the callback function to call when the middleware is finished work.
	 *	- No parameters passes the middleware off to the next layer in the stack
	 *	- Passing an error will cause the provider's error handler to take over and send the appropiate response
	 *	- Passing true will skip the rest of the middleware for the current request
	 /
	console.log(JSON.stringify(req.body));
	return next();
}

Provider.on("post_test", "*:*:*", [ bodyLogger, async function (req, next) {
	// Business logic here...
}]);
Feature Flagging

Feature flagging middleware provides an easy way to get state of flags in the req object.

const FeatureFlagging = require('@compassdigital/middleware').fn.FeatureFlagging;

You can register the middleware at the provider level with minimal boilerplate code.


UserProvider.use(FeatureFlagging.call(UserProvider));

Or at the handler level

Provider.on("post_test", "*:*:*", [FeatureFlagging(), async function (req, next) {
	// Business logic here...
}]);

From here on, a feature_flags property will be exposed on the req object. You can then use the flags as

Provider.on("post_test", "*:*:*", async function (req, next) {
	if (req.feature_flags.my_feature_1) doSomething();
});

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