From 4336a5d214c32a35161bd402525d2c75e349bc3f Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Sun, 2 Nov 2025 10:29:23 -0500 Subject: [PATCH] extract QuantumKVCache custom errors to their own files to reduce the chance of future circular dependencies --- .../backend/src/core/CustomEmojiService.ts | 2 +- packages/backend/src/misc/QuantumKVCache.ts | 78 +------------------ .../src/misc/errors/FetchFailedError.ts | 30 +++++++ .../src/misc/errors/KeyNotFoundError.ts | 24 ++++++ .../src/misc/errors/QuantumCacheError.ts | 22 ++++++ 5 files changed, 80 insertions(+), 76 deletions(-) create mode 100644 packages/backend/src/misc/errors/FetchFailedError.ts create mode 100644 packages/backend/src/misc/errors/KeyNotFoundError.ts create mode 100644 packages/backend/src/misc/errors/QuantumCacheError.ts diff --git a/packages/backend/src/core/CustomEmojiService.ts b/packages/backend/src/core/CustomEmojiService.ts index 9c4b28e9e7..65bc4c6451 100644 --- a/packages/backend/src/core/CustomEmojiService.ts +++ b/packages/backend/src/core/CustomEmojiService.ts @@ -24,8 +24,8 @@ import { CacheManagementService, type ManagedQuantumKVCache } from '@/global/Cac import { TimeService } from '@/global/TimeService.js'; import { LoggerService } from '@/core/LoggerService.js'; import { isRetryableSymbol } from '@/misc/is-retryable-error.js'; -import { KeyNotFoundError } from '@/misc/QuantumKVCache.js'; import type Logger from '@/logger.js'; +import { KeyNotFoundError } from '@/misc/errors/KeyNotFoundError.js'; // TODO move to sk-types.d.ts when merged type MinEntity = Omit> & { diff --git a/packages/backend/src/misc/QuantumKVCache.ts b/packages/backend/src/misc/QuantumKVCache.ts index 23dcdc809b..3f74d4cd24 100644 --- a/packages/backend/src/misc/QuantumKVCache.ts +++ b/packages/backend/src/misc/QuantumKVCache.ts @@ -3,14 +3,15 @@ * SPDX-License-Identifier: AGPL-3.0-only */ +import { EntityNotFoundError } from 'typeorm'; import { bindThis } from '@/decorators.js'; import { InternalEventService } from '@/global/InternalEventService.js'; import type { InternalEventTypes } from '@/core/GlobalEventService.js'; import { MemoryKVCache, type MemoryCacheServices } from '@/misc/cache.js'; import { makeKVPArray, type KVPArray } from '@/misc/kvp-array.js'; import { renderInlineError } from '@/misc/render-inline-error.js'; -import { isRetryableSymbol } from '@/misc/is-retryable-error.js'; -import { EntityNotFoundError } from 'typeorm'; +import { FetchFailedError } from '@/misc/errors/FetchFailedError.js'; +import { KeyNotFoundError } from '@/misc/errors/KeyNotFoundError.js'; export interface QuantumKVOpts { /** @@ -469,76 +470,3 @@ export class QuantumKVCache implements Iterable