diff --git a/src/entities/Font/model/store/appliedFontsStore/appliedFontStore.test.ts b/src/entities/Font/model/store/appliedFontsStore/appliedFontStore.test.ts index bba32a5..bac5059 100644 --- a/src/entities/Font/model/store/appliedFontsStore/appliedFontStore.test.ts +++ b/src/entities/Font/model/store/appliedFontsStore/appliedFontStore.test.ts @@ -1,7 +1,7 @@ /** @vitest-environment jsdom */ import { AppliedFontsManager } from './appliedFontsStore.svelte'; import { FontFetchError } from './errors'; -import { FontEvictionPolicy } from './fontEvictionPolicy/FontEvictionPolicy'; +import { FontEvictionPolicy } from './utils/fontEvictionPolicy/FontEvictionPolicy'; // ── Fake collaborators ──────────────────────────────────────────────────────── diff --git a/src/entities/Font/model/store/appliedFontsStore/appliedFontsStore.svelte.ts b/src/entities/Font/model/store/appliedFontsStore/appliedFontsStore.svelte.ts index 789f4a1..f0ff3cd 100644 --- a/src/entities/Font/model/store/appliedFontsStore/appliedFontsStore.svelte.ts +++ b/src/entities/Font/model/store/appliedFontsStore/appliedFontsStore.svelte.ts @@ -7,15 +7,15 @@ import { FontFetchError, FontParseError, } from './errors'; -import { FontBufferCache } from './fontBufferCache/FontBufferCache'; -import { FontEvictionPolicy } from './fontEvictionPolicy/FontEvictionPolicy'; -import { FontLoadQueue } from './fontLoadQueue/FontLoadQueue'; import { generateFontKey, getEffectiveConcurrency, loadFont, yieldToMainThread, } from './utils'; +import { FontBufferCache } from './utils/fontBufferCache/FontBufferCache'; +import { FontEvictionPolicy } from './utils/fontEvictionPolicy/FontEvictionPolicy'; +import { FontLoadQueue } from './utils/fontLoadQueue/FontLoadQueue'; interface AppliedFontsManagerDeps { cache?: FontBufferCache; diff --git a/src/entities/Font/model/store/appliedFontsStore/fontBufferCache/FontBufferCache.test.ts b/src/entities/Font/model/store/appliedFontsStore/utils/fontBufferCache/FontBufferCache.test.ts similarity index 98% rename from src/entities/Font/model/store/appliedFontsStore/fontBufferCache/FontBufferCache.test.ts rename to src/entities/Font/model/store/appliedFontsStore/utils/fontBufferCache/FontBufferCache.test.ts index 8008971..3ae0884 100644 --- a/src/entities/Font/model/store/appliedFontsStore/fontBufferCache/FontBufferCache.test.ts +++ b/src/entities/Font/model/store/appliedFontsStore/utils/fontBufferCache/FontBufferCache.test.ts @@ -1,5 +1,5 @@ /** @vitest-environment jsdom */ -import { FontFetchError } from '../errors'; +import { FontFetchError } from '../../errors'; import { FontBufferCache } from './FontBufferCache'; const makeBuffer = () => new ArrayBuffer(8); diff --git a/src/entities/Font/model/store/appliedFontsStore/fontBufferCache/FontBufferCache.ts b/src/entities/Font/model/store/appliedFontsStore/utils/fontBufferCache/FontBufferCache.ts similarity index 96% rename from src/entities/Font/model/store/appliedFontsStore/fontBufferCache/FontBufferCache.ts rename to src/entities/Font/model/store/appliedFontsStore/utils/fontBufferCache/FontBufferCache.ts index 1e49873..a2e6ace 100644 --- a/src/entities/Font/model/store/appliedFontsStore/fontBufferCache/FontBufferCache.ts +++ b/src/entities/Font/model/store/appliedFontsStore/utils/fontBufferCache/FontBufferCache.ts @@ -1,4 +1,4 @@ -import { FontFetchError } from '../errors'; +import { FontFetchError } from '../../errors'; type Fetcher = (url: string, init?: RequestInit) => Promise; @@ -40,7 +40,9 @@ export class FontBufferCache { async get(url: string, signal?: AbortSignal): Promise { // Tier 1: in-memory (fastest, no I/O) const inMemory = this.#buffersByUrl.get(url); - if (inMemory) return inMemory; + if (inMemory) { + return inMemory; + } // Tier 2: Cache API try { diff --git a/src/entities/Font/model/store/appliedFontsStore/fontEvictionPolicy/FontEvictionPolicy.test.ts b/src/entities/Font/model/store/appliedFontsStore/utils/fontEvictionPolicy/FontEvictionPolicy.test.ts similarity index 100% rename from src/entities/Font/model/store/appliedFontsStore/fontEvictionPolicy/FontEvictionPolicy.test.ts rename to src/entities/Font/model/store/appliedFontsStore/utils/fontEvictionPolicy/FontEvictionPolicy.test.ts diff --git a/src/entities/Font/model/store/appliedFontsStore/fontEvictionPolicy/FontEvictionPolicy.ts b/src/entities/Font/model/store/appliedFontsStore/utils/fontEvictionPolicy/FontEvictionPolicy.ts similarity index 93% rename from src/entities/Font/model/store/appliedFontsStore/fontEvictionPolicy/FontEvictionPolicy.ts rename to src/entities/Font/model/store/appliedFontsStore/utils/fontEvictionPolicy/FontEvictionPolicy.ts index 1a3a1b5..e99abde 100644 --- a/src/entities/Font/model/store/appliedFontsStore/fontEvictionPolicy/FontEvictionPolicy.ts +++ b/src/entities/Font/model/store/appliedFontsStore/utils/fontEvictionPolicy/FontEvictionPolicy.ts @@ -48,8 +48,12 @@ export class FontEvictionPolicy { */ shouldEvict(key: string, now: number): boolean { const lastUsed = this.#usageTracker.get(key); - if (lastUsed === undefined) return false; - if (this.#pinnedFonts.has(key)) return false; + if (lastUsed === undefined) { + return false; + } + if (this.#pinnedFonts.has(key)) { + return false; + } return now - lastUsed >= this.#TTL; } diff --git a/src/entities/Font/model/store/appliedFontsStore/fontLoadQueue/FontLoadQueue.test.ts b/src/entities/Font/model/store/appliedFontsStore/utils/fontLoadQueue/FontLoadQueue.test.ts similarity index 97% rename from src/entities/Font/model/store/appliedFontsStore/fontLoadQueue/FontLoadQueue.test.ts rename to src/entities/Font/model/store/appliedFontsStore/utils/fontLoadQueue/FontLoadQueue.test.ts index f833fcf..ab61f5a 100644 --- a/src/entities/Font/model/store/appliedFontsStore/fontLoadQueue/FontLoadQueue.test.ts +++ b/src/entities/Font/model/store/appliedFontsStore/utils/fontLoadQueue/FontLoadQueue.test.ts @@ -1,4 +1,4 @@ -import type { FontLoadRequestConfig } from '../../../types'; +import type { FontLoadRequestConfig } from '../../../../types'; import { FontLoadQueue } from './FontLoadQueue'; const config = (id: string): FontLoadRequestConfig => ({ diff --git a/src/entities/Font/model/store/appliedFontsStore/fontLoadQueue/FontLoadQueue.ts b/src/entities/Font/model/store/appliedFontsStore/utils/fontLoadQueue/FontLoadQueue.ts similarity index 92% rename from src/entities/Font/model/store/appliedFontsStore/fontLoadQueue/FontLoadQueue.ts rename to src/entities/Font/model/store/appliedFontsStore/utils/fontLoadQueue/FontLoadQueue.ts index 1cc6685..5e6de9f 100644 --- a/src/entities/Font/model/store/appliedFontsStore/fontLoadQueue/FontLoadQueue.ts +++ b/src/entities/Font/model/store/appliedFontsStore/utils/fontLoadQueue/FontLoadQueue.ts @@ -1,4 +1,4 @@ -import type { FontLoadRequestConfig } from '../../../types'; +import type { FontLoadRequestConfig } from '../../../../types'; /** * Manages the font load queue and per-font retry counts. @@ -17,7 +17,9 @@ export class FontLoadQueue { * @returns `true` if the key was newly enqueued, `false` if it was already present. */ enqueue(key: string, config: FontLoadRequestConfig): boolean { - if (this.#queue.has(key)) return false; + if (this.#queue.has(key)) { + return false; + } this.#queue.set(key, config); return true; }