1.0.35 • Published 4 years ago

@richiebono/rate-limit-middleware v1.0.35

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

Description

Rate Limit Implementation using Nest.

Application with implementation example:

https://github.com/richiebono/posts-api

NPM Package URL: NPM

Installation

npm i @richiebono/rate-limit-middleware

Add the following parameters to your .env file:

RATE_LIMIT_MAX_REQUEST_BY_IP=100
RATE_LIMIT_MAX_REQUEST_BY_TOKEN=200
RATE_LIMIT_WINDOW_LOG_INTERVAL=1
RATE_LIMIT_WINDOW_SIZE=24
RATE_LIMIT_UNIT_OF_TIME="hours"
REDIS_HOST="localhost"
REDIS_PORT=6379

Import the rate limit libs:

import { 
  PriveteRateLimitMiddleware, 
  PublicRateLimitMiddleware, 
  RateLimitModule, 
  RateLimitService, 
  configureRateLimitCacheModule 
  } from '@richiebono/rate-limit-middleware';

Configugure your module:

@Module({
  imports: [
    configureRateLimitCacheModule(),
  ],
  providers: [RateLimitService],
})

Implement your AppModule using the follows exemple for public and private routes:

export class AppModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {

    consumer
      .apply(PriveteRateLimitMiddleware)
      .exclude(
        { path: 'api', method: RequestMethod.GET },
      )
      .forRoutes(PostsController, AppController);    

    consumer
      .apply(PublicRateLimitMiddleware)
      .forRoutes(LoginController, RegisterController);  
  }
}

Support

rate-limit-middleware is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers.

Stay in touch

License

Nest is MIT licensed.

1.0.35

4 years ago

1.0.34

4 years ago

1.0.33

4 years ago

1.0.32

4 years ago

1.0.31

4 years ago

1.0.30

4 years ago

1.0.29

4 years ago

1.0.28

4 years ago

1.0.27

4 years ago

1.0.26

4 years ago

1.0.25

4 years ago

1.0.24

4 years ago

1.0.23

4 years ago

1.0.22

4 years ago

1.0.21

4 years ago

1.0.20

4 years ago

1.0.17

4 years ago

1.0.16

4 years ago

1.0.15

4 years ago

1.0.14

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.0.1

4 years ago