File tree Expand file tree Collapse file tree 3 files changed +888
-927
lines changed Expand file tree Collapse file tree 3 files changed +888
-927
lines changed Original file line number Diff line number Diff line change @@ -19,14 +19,17 @@ const etag = require('koa-etag');
1919const json = require ( 'koa-json' ) ;
2020const koa404Handler = require ( 'koa-404-handler' ) ;
2121const koaConnect = require ( 'koa-connect' ) ;
22+ const ms = require ( 'ms' ) ;
2223const multimatch = require ( 'multimatch' ) ;
24+ const ratelimit = require ( '@ladjs/koa-simple-ratelimit' ) ;
2325const removeTrailingSlashes = require ( 'koa-no-trailing-slash' ) ;
2426const requestId = require ( 'express-request-id' ) ;
2527const requestReceived = require ( 'request-received' ) ;
2628const responseTime = require ( 'response-time' ) ;
2729const sharedConfig = require ( '@ladjs/shared-config' ) ;
2830const { boolean } = require ( 'boolean' ) ;
29- const { ratelimit } = require ( 'koa-simple-ratelimit' ) ;
31+
32+ const RATE_LIMIT_EXCEEDED = `Rate limit exceeded, retry in %s.` ;
3033
3134class API {
3235 constructor ( config , client ) {
@@ -109,7 +112,14 @@ class API {
109112
110113 return ratelimit ( {
111114 ...this . config . rateLimit ,
112- db : this . client
115+ db : this . client ,
116+ logger : cabin ,
117+ errorMessage ( exp ) {
118+ const fn =
119+ typeof ctx . request . t === 'function' ? ctx . request . t : util . format ;
120+ // NOTE: ms does not support i18n localization
121+ return fn ( RATE_LIMIT_EXCEEDED , ms ( exp , { long : true } ) ) ;
122+ }
113123 } ) ( ctx , next ) ;
114124 } ) ;
115125 }
Original file line number Diff line number Diff line change 2222 "dependencies" : {
2323 "@koa/router" : " ^10.1.1" ,
2424 "@ladjs/i18n" : " ^7.2.6" ,
25+ "@ladjs/koa-simple-ratelimit" : " ^3.0.0" ,
2526 "@ladjs/redis" : " ^1.0.7" ,
26- "@ladjs/shared-config" : " ^6.0.0 " ,
27+ "@ladjs/shared-config" : " ^6.0.2 " ,
2728 "@ladjs/store-ip-address" : " ^0.0.7" ,
2829 "boolean" : " ^3.2.0" ,
2930 "cabin" : " ^9.1.2" ,
4142 "koa-etag" : " ^4.0.0" ,
4243 "koa-json" : " ^2.0.2" ,
4344 "koa-no-trailing-slash" : " ^2.1.0" ,
44- "koa-simple-ratelimit" : " ^5.1.1" ,
4545 "lodash" : " ^4.17.21" ,
46+ "ms" : " ^2.1.3" ,
4647 "multimatch" : " 5" ,
4748 "request-received" : " ^0.0.3" ,
4849 "response-time" : " ^2.3.2"
4950 },
5051 "devDependencies" : {
51- "@commitlint/cli" : " ^16.2.4 " ,
52- "@commitlint/config-conventional" : " ^16.2.4 " ,
52+ "@commitlint/cli" : " ^17.0.1 " ,
53+ "@commitlint/config-conventional" : " ^17.0.0 " ,
5354 "ava" : " ^4.2.0" ,
5455 "codecov" : " ^3.8.3" ,
5556 "cross-env" : " ^7.0.3" ,
56- "eslint" : " ^8.14 .0" ,
57+ "eslint" : " ^8.16 .0" ,
5758 "eslint-config-xo-lass" : " ^1.0.6" ,
5859 "fixpack" : " ^4.0.0" ,
59- "husky" : " ^7 .0.4 " ,
60- "lint-staged" : " 12.4.1 " ,
61- "mongoose" : " ^6.3.2 " ,
60+ "husky" : " ^8 .0.1 " ,
61+ "lint-staged" : " 12.4.2 " ,
62+ "mongoose" : " ^6.3.4 " ,
6263 "nyc" : " ^15.1.0" ,
6364 "remark-cli" : " ^10.0.1" ,
6465 "remark-preset-github" : " ^4.0.1" ,
6566 "supertest" : " ^6.2.3" ,
66- "xo" : " ^0.48 .0"
67+ "xo" : " ^0.49 .0"
6768 },
6869 "engines" : {
6970 "node" : " >=10.10.0"
You can’t perform that action at this time.
0 commit comments