plugin/antibrute: nicer

Massimo Melina committed Feb 18, 2023 at 12:18 UTC 17e36657d6bb0767816f3bbcceaa6a327aa96241
2 files changed +6 -6
plugins/antibrute/plugin.js
+1 -1
@@ -7,7 +7,7 @@ exports.config = {
7 max: { type: 'number', min: 1, defaultValue: 60, helperText: "Max seconds to delay before next login is allowed" },
8 }
9 exports.configDialog = {
10 - maxWidth: 'sm',
10 + maxWidth: '25em',
11 }
12
13 const byIp = {}
shared/index.ts
+5 -5
@@ -9,22 +9,22 @@ export type Dict<T=any> = Record<string, T>
9 export type Falsy = false | null | undefined | '' | 0
10 type Truthy<T> = T extends false | '' | 0 | null | undefined ? never : T
11
12 +const MULTIPLIERS = ['', 'K', 'M', 'G', 'T']
13 export function formatBytes(n: number, { post='B', k=1024, digits=NaN }={}) {
14 if (isNaN(Number(n)) || n < 0)
15 return ''
15 - let x = ['', 'K', 'M', 'G', 'T']
16 let prevMul = 1
17 let mul = k
18 let i = 0
19 - while (i < x.length && n > mul) {
19 + while (i < MULTIPLIERS.length && n > mul) {
20 prevMul = mul
21 mul *= k
22 ++i
23 }
24 n /= prevMul
25 - const ns = !i || isNaN(digits) ? _.round(n, isNaN(digits) ? (n >= 100 ? 0 : 1) : digits) // _.round will avoid useless fractional zeros when `digits is unspecified or no multiplier was used
26 - : n.toFixed(digits)
27 - return ns + ' ' + (x[i]||'') + post
25 + const nAsString = i && !isNaN(digits) ? n.toFixed(digits)
26 + : _.round(n, isNaN(digits) ? (n >= 100 ? 0 : 1) : digits)
27 + return nAsString + ' ' + (MULTIPLIERS[i]||'') + post
28 } // formatBytes
29
30 export function prefix(pre:string, v:string|number|undefined|null|false, post:string='') {