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 🙏

© 2026 – Pkg Stats / Ryan Hefner

multer-sc

v1.5.0

Published

Multer with an additional option for dynamic file size filter

Readme

Multer (with) Size Check

This is same package as Multer except it has a dynamic check for file size. You can check multer here multer.

NOTE: Multer works with fileStreams which make it hard for developers to check and apply file size checks and limits.

Installation

$ npm install --save multer-sc

Usage

To understand more about multer-sc, let's take an example. Let's say there is a software that has more than one type of users and file upload limit varies for each user type. Let's say admins can upload upto 50MB of files where normal user can upload max of 2MB. In standard multer package, it was near to impossible to apply dynamic check for both.

fileSizeHook:

In this method, you will get relevant meta-data field sent along with post request. Call this callback fileUploadLimit and provide the limit in bytes. And that is basically it.

It would look something like this:

var uploadFiles = multer({
	storage: storageUploads,
	fileFilter: async function(req, file, callback) {
		...
	},
	limits: {
		...
	},
	sizeInfoHook: async function(options){
		var { email } = options.data;
		var user = await User.findOne({ email: email });
		options.cb.fileUploadLimit(imageUploadLimits[user.globalRank]);
	}
});

Multer instance also holds copy of file upload limit. In case of example above, uploadFiles.fieldData['ful'] will contain the file upload limit passed in bytes.

Client Side Measures

How to Request?

For multer-sc to work smoothly in your project, please make sure that you send releveant data such as username, token, email, etc first and then adding the actual file. Appending the meta-data first will make it available in the fileSizeHook handler.

Example is given below:


    var payload = new FormData();

	//add meta-data first
    payload.append('email', email);
    payload.append('username', username);

	//and then the actual file (image, video, etc)
	payload.append('imageFile', InputFile.current.files[0]);

    axios
      .post(API_EP + '/upload', payload, {
        headers: { 'Content-Type': 'multipart/form-data' },
      })
      .then((response) => {
		...
	  }