mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 11:29:46 +00:00
Make @ditto/ratelimiter its own package
This commit is contained in:
parent
fc2928e72e
commit
ac3a9fdf5a
10 changed files with 18 additions and 6 deletions
|
|
@ -8,6 +8,7 @@
|
||||||
"./packages/lang",
|
"./packages/lang",
|
||||||
"./packages/metrics",
|
"./packages/metrics",
|
||||||
"./packages/policies",
|
"./packages/policies",
|
||||||
|
"./packages/ratelimiter",
|
||||||
"./packages/translators",
|
"./packages/translators",
|
||||||
"./packages/uploaders"
|
"./packages/uploaders"
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import { type DittoConf } from '@ditto/conf';
|
import { type DittoConf } from '@ditto/conf';
|
||||||
import { relayConnectionsGauge, relayEventsCounter, relayMessagesCounter } from '@ditto/metrics';
|
import { relayConnectionsGauge, relayEventsCounter, relayMessagesCounter } from '@ditto/metrics';
|
||||||
|
import { MemoryRateLimiter, MultiRateLimiter, type RateLimiter } from '@ditto/ratelimiter';
|
||||||
import { logi } from '@soapbox/logi';
|
import { logi } from '@soapbox/logi';
|
||||||
import { JsonValue } from '@std/json';
|
import { JsonValue } from '@std/json';
|
||||||
import {
|
import {
|
||||||
|
|
@ -20,9 +21,6 @@ import { RelayError } from '@/RelayError.ts';
|
||||||
import { Storages } from '@/storages.ts';
|
import { Storages } from '@/storages.ts';
|
||||||
import { errorJson } from '@/utils/log.ts';
|
import { errorJson } from '@/utils/log.ts';
|
||||||
import { purifyEvent } from '@/utils/purify.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';
|
import { Time } from '@/utils/time.ts';
|
||||||
|
|
||||||
/** Limit of initial events returned for a subscription. */
|
/** Limit of initial events returned for a subscription. */
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import { RateLimitError } from './RateLimitError.ts';
|
import { RateLimitError } from './RateLimitError.ts';
|
||||||
import { RateLimiter, RateLimiterClient } from './types.ts';
|
|
||||||
|
import type { RateLimiter, RateLimiterClient } from './types.ts';
|
||||||
|
|
||||||
interface MemoryRateLimiterOpts {
|
interface MemoryRateLimiterOpts {
|
||||||
limit: number;
|
limit: number;
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { RateLimiter, RateLimiterClient } from './types.ts';
|
import type { RateLimiter, RateLimiterClient } from './types.ts';
|
||||||
|
|
||||||
export class MultiRateLimiter {
|
export class MultiRateLimiter {
|
||||||
constructor(private limiters: RateLimiter[]) {}
|
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 {
|
export class RateLimitError extends Error {
|
||||||
constructor(
|
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