1.0.35 • Published 3 years ago

@richiebono/rate-limit-middleware v1.0.35

Weekly downloads
-
License
MIT
Repository
-
Last release
3 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

3 years ago

1.0.34

3 years ago

1.0.33

3 years ago

1.0.32

3 years ago

1.0.31

3 years ago

1.0.30

3 years ago

1.0.29

3 years ago

1.0.28

3 years ago

1.0.27

3 years ago

1.0.26

3 years ago

1.0.25

3 years ago

1.0.24

3 years ago

1.0.23

3 years ago

1.0.22

3 years ago

1.0.21

3 years ago

1.0.20

3 years ago

1.0.17

3 years ago

1.0.16

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.0.1

3 years ago