From b73e475326e94095130e8761c17e504a6e9d0db7 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Mon, 17 Feb 2025 15:30:11 -0600 Subject: [PATCH] Make @ditto/ratelimiter a separate package --- deno.json | 1 + .../{ditto/utils => }/ratelimiter/MemoryRateLimiter.test.ts | 0 packages/{ditto/utils => }/ratelimiter/MemoryRateLimiter.ts | 3 ++- .../{ditto/utils => }/ratelimiter/MultiRateLimiter.test.ts | 0 packages/{ditto/utils => }/ratelimiter/MultiRateLimiter.ts | 2 +- packages/{ditto/utils => }/ratelimiter/RateLimitError.ts | 2 +- packages/ratelimiter/deno.json | 6 ++++++ packages/ratelimiter/mod.ts | 5 +++++ packages/{ditto/utils => }/ratelimiter/types.ts | 0 9 files changed, 16 insertions(+), 3 deletions(-) rename packages/{ditto/utils => }/ratelimiter/MemoryRateLimiter.test.ts (100%) rename packages/{ditto/utils => }/ratelimiter/MemoryRateLimiter.ts (95%) rename packages/{ditto/utils => }/ratelimiter/MultiRateLimiter.test.ts (100%) rename packages/{ditto/utils => }/ratelimiter/MultiRateLimiter.ts (94%) rename packages/{ditto/utils => }/ratelimiter/RateLimitError.ts (73%) create mode 100644 packages/ratelimiter/deno.json create mode 100644 packages/ratelimiter/mod.ts rename packages/{ditto/utils => }/ratelimiter/types.ts (100%) diff --git a/deno.json b/deno.json index 915fd175..07415c2e 100644 --- a/deno.json +++ b/deno.json @@ -6,6 +6,7 @@ "./packages/db", "./packages/ditto", "./packages/metrics", + "./packages/ratelimiter", "./packages/translators" ], "tasks": { diff --git a/packages/ditto/utils/ratelimiter/MemoryRateLimiter.test.ts b/packages/ratelimiter/MemoryRateLimiter.test.ts similarity index 100% rename from packages/ditto/utils/ratelimiter/MemoryRateLimiter.test.ts rename to packages/ratelimiter/MemoryRateLimiter.test.ts diff --git a/packages/ditto/utils/ratelimiter/MemoryRateLimiter.ts b/packages/ratelimiter/MemoryRateLimiter.ts similarity index 95% rename from packages/ditto/utils/ratelimiter/MemoryRateLimiter.ts rename to packages/ratelimiter/MemoryRateLimiter.ts index 0eaa5540..15546fd0 100644 --- a/packages/ditto/utils/ratelimiter/MemoryRateLimiter.ts +++ b/packages/ratelimiter/MemoryRateLimiter.ts @@ -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; diff --git a/packages/ditto/utils/ratelimiter/MultiRateLimiter.test.ts b/packages/ratelimiter/MultiRateLimiter.test.ts similarity index 100% rename from packages/ditto/utils/ratelimiter/MultiRateLimiter.test.ts rename to packages/ratelimiter/MultiRateLimiter.test.ts diff --git a/packages/ditto/utils/ratelimiter/MultiRateLimiter.ts b/packages/ratelimiter/MultiRateLimiter.ts similarity index 94% rename from packages/ditto/utils/ratelimiter/MultiRateLimiter.ts rename to packages/ratelimiter/MultiRateLimiter.ts index 14b23142..189ca177 100644 --- a/packages/ditto/utils/ratelimiter/MultiRateLimiter.ts +++ b/packages/ratelimiter/MultiRateLimiter.ts @@ -1,4 +1,4 @@ -import { RateLimiter, RateLimiterClient } from './types.ts'; +import type { RateLimiter, RateLimiterClient } from './types.ts'; export class MultiRateLimiter { constructor(private limiters: RateLimiter[]) {} diff --git a/packages/ditto/utils/ratelimiter/RateLimitError.ts b/packages/ratelimiter/RateLimitError.ts similarity index 73% rename from packages/ditto/utils/ratelimiter/RateLimitError.ts rename to packages/ratelimiter/RateLimitError.ts index ce21af72..da3a4fd8 100644 --- a/packages/ditto/utils/ratelimiter/RateLimitError.ts +++ b/packages/ratelimiter/RateLimitError.ts @@ -1,4 +1,4 @@ -import { RateLimiter, RateLimiterClient } from './types.ts'; +import type { RateLimiter, RateLimiterClient } from './types.ts'; export class RateLimitError extends Error { constructor( diff --git a/packages/ratelimiter/deno.json b/packages/ratelimiter/deno.json new file mode 100644 index 00000000..ba0fa4da --- /dev/null +++ b/packages/ratelimiter/deno.json @@ -0,0 +1,6 @@ +{ + "name": "@ditto/ratelimiter", + "exports": { + ".": "./mod.ts" + } +} diff --git a/packages/ratelimiter/mod.ts b/packages/ratelimiter/mod.ts new file mode 100644 index 00000000..58bbbeaa --- /dev/null +++ b/packages/ratelimiter/mod.ts @@ -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'; diff --git a/packages/ditto/utils/ratelimiter/types.ts b/packages/ratelimiter/types.ts similarity index 100% rename from packages/ditto/utils/ratelimiter/types.ts rename to packages/ratelimiter/types.ts