npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

use-middleware

v2.0.0

Published

A middleware provider for any function call

Downloads

14

Readme

use-middleware

Allows middleware to be added to any function call.

Example

Api

use

Use-middleware exposed one api :

use(argsObject: { [key: string]: any }, middlewareArray: MiddlewareFunc[], handlerFunc: HandlerFunc): Promise

Use will call each middleware in order, passing it the args and finally resolve the promise with the return value from the handler func. To handle errors in middlware you can pass the error to the next function and the promise will reject with the error.

Params

argsObject: { [key: string]: any }

The arguments object will be passed to each middleware and finally the handler.

middlewareArray: MiddlewareFunc[]

An array of middleware functions which will be called in order before the handler.

handlerFunc: HandlerFunc

The handler function will be called after the middleware functions.

Types

MiddlewareFunc = (argsObject, next: NextFunc, previous) => void

Middleware functions will be called with three paramaters. The argsObject, the next function in the pipeline and the value with which the previous function was called.

Middleware functions can do their work and then add properties to the argsObject. Once complete call the next function with any data to pass which will be received as the previous param.

HandlerFunc = (argsObject, previous: any) => any

The handler function will be called at the end of the middleware chain with the argsObject and and values passed to next from the last middleware.

nextFunc = (err: Error | string, data: any) => void

The next function is passed to each middleware and called there to move control to the next middleware. It takes two arguments, the first is any errors from the middleware, the second any data you would like to pass to the following function.