1.0.35 • Published 1 year ago

@richiebono/rate-limit-middleware v1.0.35

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

1 year ago

1.0.34

2 years ago

1.0.33

2 years ago

1.0.32

2 years ago

1.0.31

2 years ago

1.0.30

2 years ago

1.0.29

2 years ago

1.0.28

2 years ago

1.0.27

2 years ago

1.0.26

2 years ago

1.0.25

2 years ago

1.0.24

2 years ago

1.0.23

2 years ago

1.0.22

2 years ago

1.0.21

2 years ago

1.0.20

2 years ago

1.0.17

2 years ago

1.0.16

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.0.1

2 years ago