@aftership/rate-limiter

    3.0.2 • Public • Published

    rate-limiter

    Build Status codecov.io

    node npm npm

    Rate limit for Node.js, with ioredis client

    Installation

    npm install @aftership/rate-limiter
    

    Dependency

    The client must be an instance of ioredis library.

    Examples

    const Limiter = require('@aftership/rate-limiter');
    const Redis = require('ioredis');
    
    const redisClient = new Redis({
    	port: 6379,
    	host: '127.0.0.1',
    	db: 0
    });
    
    redisClient.on('connect', (err) => {
    	if (err) {
    		console.log(err);
    		return;
    	}
    
    	// limit to 2 request per every 10s
    	const limiter = new Limiter({
    		redisClient,
    		key: 'the-user-api-key',
    		limit: 2, // default is 10
    		duration: 10 // default is 60s
    	});
    
    	limiter
    		.get()
    		.then((result) => {
    			console.log(result);
    
    			if (result.remaining >= 0) {
    				console.log('I can do the request!');
    			} else {
    				console.log(`I run out of limit! Try again after ${result.reset} second.`);
    			}
    			process.exit(0);
    		})
    		.catch((e) => {
    			console.log(e);
    		});
    });

    Change log

    Please refer to release page

    License

    Copyright (c) 2019 AfterShip

    Licensed under the MIT license.

    Install

    npm i @aftership/rate-limiter

    DownloadsWeekly Downloads

    147

    Version

    3.0.2

    License

    MIT

    Unpacked Size

    11.4 kB

    Total Files

    12

    Last publish

    Collaborators

    • aftership