mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 11:29:46 +00:00
Merge branch 'ditto-ratelimiter' into 'main'
Make @ditto/ratelimiter its own package See merge request soapbox-pub/ditto!675
This commit is contained in:
commit
a6fbe4728d
10 changed files with 18 additions and 6 deletions
|
|
@ -8,6 +8,7 @@
|
|||
"./packages/lang",
|
||||
"./packages/metrics",
|
||||
"./packages/policies",
|
||||
"./packages/ratelimiter",
|
||||
"./packages/translators",
|
||||
"./packages/uploaders"
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { type DittoConf } from '@ditto/conf';
|
||||
import { relayConnectionsGauge, relayEventsCounter, relayMessagesCounter } from '@ditto/metrics';
|
||||
import { MemoryRateLimiter, MultiRateLimiter, type RateLimiter } from '@ditto/ratelimiter';
|
||||
import { logi } from '@soapbox/logi';
|
||||
import { JsonValue } from '@std/json';
|
||||
import {
|
||||
|
|
@ -20,9 +21,6 @@ import { RelayError } from '@/RelayError.ts';
|
|||
import { Storages } from '@/storages.ts';
|
||||
import { errorJson } from '@/utils/log.ts';
|
||||
import { purifyEvent } from '@/utils/purify.ts';
|
||||
import { MemoryRateLimiter } from '@/utils/ratelimiter/MemoryRateLimiter.ts';
|
||||
import { MultiRateLimiter } from '@/utils/ratelimiter/MultiRateLimiter.ts';
|
||||
import { RateLimiter } from '@/utils/ratelimiter/types.ts';
|
||||
import { Time } from '@/utils/time.ts';
|
||||
|
||||
/** Limit of initial events returned for a subscription. */
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { RateLimitError } from './RateLimitError.ts';
|
||||
import { RateLimiter, RateLimiterClient } from './types.ts';
|
||||
|
||||
import type { RateLimiter, RateLimiterClient } from './types.ts';
|
||||
|
||||
interface MemoryRateLimiterOpts {
|
||||
limit: number;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { RateLimiter, RateLimiterClient } from './types.ts';
|
||||
import type { RateLimiter, RateLimiterClient } from './types.ts';
|
||||
|
||||
export class MultiRateLimiter {
|
||||
constructor(private limiters: RateLimiter[]) {}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { RateLimiter, RateLimiterClient } from './types.ts';
|
||||
import type { RateLimiter, RateLimiterClient } from './types.ts';
|
||||
|
||||
export class RateLimitError extends Error {
|
||||
constructor(
|
||||
7
packages/ratelimiter/deno.json
Normal file
7
packages/ratelimiter/deno.json
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"name": "@ditto/ratelimiter",
|
||||
"version": "1.1.0",
|
||||
"exports": {
|
||||
".": "./mod.ts"
|
||||
}
|
||||
}
|
||||
5
packages/ratelimiter/mod.ts
Normal file
5
packages/ratelimiter/mod.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
export { MemoryRateLimiter } from './MemoryRateLimiter.ts';
|
||||
export { MultiRateLimiter } from './MultiRateLimiter.ts';
|
||||
export { RateLimitError } from './RateLimitError.ts';
|
||||
|
||||
export type { RateLimiter, RateLimiterClient } from './types.ts';
|
||||
Loading…
Add table
Reference in a new issue