sprint-es 0.0.21 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -102,4 +102,29 @@ export default defineMiddleware({
102
102
  next();
103
103
  }
104
104
  });
105
+ ```
106
+
107
+ #### Define Rate Limit
108
+
109
+ ```ts
110
+ import { defineMiddleware } from "sprint-es";
111
+ import { createRateLimit } from "sprint-es/rate-limit";
112
+
113
+ const ratelimitIp = createRateLimit(3, "5s", "ip", {
114
+ blockDuration: "1m"
115
+ });
116
+
117
+ export default defineMiddleware({
118
+ name: "rate-limit",
119
+ priority: 7, // Runs after logger.
120
+ include: "/**",
121
+ handler: async (req, res, next) => {
122
+ const { success, limit, remaining, reset } = await ratelimitIp.limit(req.ip);
123
+
124
+ if (!success) return res.status(429).send("Too many requests. Try again later.");
125
+
126
+ console.log(`Request allowed. Remaining: ${remaining}/${limit}`);
127
+ next();
128
+ }
129
+ });
105
130
  ```
@@ -205,6 +205,7 @@ class Sprint {
205
205
  key,
206
206
  limit: 5,
207
207
  interval: "10s",
208
+ blockDuration: "1m",
208
209
  storage: "memory"
209
210
  }).then((result) => {
210
211
  if (!result.success) {
package/dist/esm/index.js CHANGED
@@ -202,6 +202,7 @@ class Sprint {
202
202
  key,
203
203
  limit: 5,
204
204
  interval: "10s",
205
+ blockDuration: "1m",
205
206
  storage: "memory"
206
207
  }).then((result) => {
207
208
  if (!result.success) {
@@ -1 +1 @@
1
- {"version":3,"file":"sprint.d.ts","sourceRoot":"","sources":["../../src/sprint.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAsC,MAAM,SAAS,CAAC;AACrF,OAAO,OAAO,EAAE,EAAE,WAAW,EAA2C,MAAM,SAAS,CAAC;AAQxF,qBAAa,MAAM;IACR,GAAG,EAAE,WAAW,CAAC;IACxB,OAAO,CAAC,IAAI,CAAqC;IACjD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,iBAAiB,CAA0B;gBAEvC,EACR,IAAuB,EACvB,UAAuB,EACvB,eAAiC,EACjC,SAAkB,EAClB,eAAwB,EACxB,MAAW,EACd,GAAE,aAAkB;YAeP,IAAI;IAsBlB,OAAO,CAAC,YAAY;IAoBpB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA4B9B;;OAEG;YACW,eAAe;IAgC7B,OAAO,CAAC,eAAe;YAcT,UAAU;IAgDxB,OAAO,CAAC,YAAY;IA+BpB,+BAA+B;IAC/B,OAAO,CAAC,WAAW;IAMZ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAClC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACnC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAClC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACrC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACpC,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO;IAK3D,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;CAe7C"}
1
+ {"version":3,"file":"sprint.d.ts","sourceRoot":"","sources":["../../src/sprint.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAsC,MAAM,SAAS,CAAC;AACrF,OAAO,OAAO,EAAE,EAAE,WAAW,EAA2C,MAAM,SAAS,CAAC;AAQxF,qBAAa,MAAM;IACR,GAAG,EAAE,WAAW,CAAC;IACxB,OAAO,CAAC,IAAI,CAAqC;IACjD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,iBAAiB,CAA0B;gBAEvC,EACR,IAAuB,EACvB,UAAuB,EACvB,eAAiC,EACjC,SAAkB,EAClB,eAAwB,EACxB,MAAW,EACd,GAAE,aAAkB;YAeP,IAAI;IAsBlB,OAAO,CAAC,YAAY;IAoBpB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA4B9B;;OAEG;YACW,eAAe;IAgC7B,OAAO,CAAC,eAAe;YAcT,UAAU;IAgDxB,OAAO,CAAC,YAAY;IAgCpB,+BAA+B;IAC/B,OAAO,CAAC,WAAW;IAMZ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAClC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACnC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAClC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACrC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACpC,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO;IAK3D,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;CAe7C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sprint-es",
3
- "version": "0.0.21",
3
+ "version": "0.0.22",
4
4
  "description": "Sprint - Quickly API",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -53,7 +53,7 @@
53
53
  "morgan": "^1.10.1",
54
54
  "path": "^0.12.7",
55
55
  "serve-favicon": "^2.5.1",
56
- "toolkitify": "^0.0.20"
56
+ "toolkitify": "^0.0.25"
57
57
  },
58
58
  "contributors": [
59
59
  "TPEOficial (https://github.com/TPEOficial)",
@@ -79,4 +79,4 @@
79
79
  "tabWidth": 4,
80
80
  "useTabs": false
81
81
  }
82
- }
82
+ }