| 198 | }); |
| 199 | |
| 200 | const readRateLimit = (source: EnvSource) => ({ |
| 201 | RATE_LIMIT_MAX: toInt(source.RATE_LIMIT_MAX, 100, "RATE_LIMIT_MAX"), |
| 202 | RATE_LIMIT_WINDOW_MS: toInt( |
| 203 | source.RATE_LIMIT_WINDOW_MS, |
| 204 | 60_000, |
| 205 | "RATE_LIMIT_WINDOW_MS" |
| 206 | ), |
| 207 | AUTH_RATE_LIMIT_MAX: toInt( |
| 208 | source.AUTH_RATE_LIMIT_MAX, |
| 209 | 10, |
| 210 | "AUTH_RATE_LIMIT_MAX" |
| 211 | ), |
| 212 | AUTH_RATE_LIMIT_WINDOW_MS: toInt( |
| 213 | source.AUTH_RATE_LIMIT_WINDOW_MS, |
| 214 | 60_000, |
| 215 | "AUTH_RATE_LIMIT_WINDOW_MS" |
| 216 | ), |
| 217 | TRUST_PROXY: toBool(source.TRUST_PROXY, "TRUST_PROXY"), |
| 218 | }); |
| 219 | |
| 220 | const readSentry = (source: EnvSource) => ({ |
| 221 | SENTRY_DSN: source.SENTRY_DSN ?? "", |