From 8ad29fd3a8203cdee1e02de10e3d3d36943be772 Mon Sep 17 00:00:00 2001 From: Ilia Mashkov Date: Fri, 9 Jan 2026 16:09:18 +0300 Subject: [PATCH] feat(FontCategory): separate types for font categories from different providers --- src/entities/Font/model/types/common.ts | 4 +++- src/entities/Font/model/types/fontshare.ts | 2 ++ src/entities/Font/model/types/google.ts | 4 +++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/entities/Font/model/types/common.ts b/src/entities/Font/model/types/common.ts index de8fea9..ca7100f 100644 --- a/src/entities/Font/model/types/common.ts +++ b/src/entities/Font/model/types/common.ts @@ -3,11 +3,13 @@ * DOMAIN TYPES * ============================================================================ */ +import type { FontCategory as FontshareFontCategory } from './fontshare'; +import type { FontCategory as GoogleFontCategory } from './google'; /** * Font category */ -export type FontCategory = 'sans-serif' | 'serif' | 'display' | 'handwriting' | 'monospace'; +export type FontCategory = GoogleFontCategory | FontshareFontCategory; /** * Font provider diff --git a/src/entities/Font/model/types/fontshare.ts b/src/entities/Font/model/types/fontshare.ts index 49ff8dc..319b272 100644 --- a/src/entities/Font/model/types/fontshare.ts +++ b/src/entities/Font/model/types/fontshare.ts @@ -8,6 +8,8 @@ import type { CollectionApiModel } from '$shared/types/collection'; export const FONTSHARE_API_URL = 'https://api.fontshare.com/v2' as const; +export type FontCategory = 'sans' | 'serif' | 'slab' | 'display' | 'handwritten' | 'script'; + /** * Model of Fontshare API response * @see https://fontshare.com diff --git a/src/entities/Font/model/types/google.ts b/src/entities/Font/model/types/google.ts index 26a1f56..c69c54d 100644 --- a/src/entities/Font/model/types/google.ts +++ b/src/entities/Font/model/types/google.ts @@ -4,6 +4,8 @@ * ============================================================================ */ +export type FontCategory = 'sans-serif' | 'serif' | 'display' | 'handwriting' | 'monospace'; + /** * Model of google fonts api response */ @@ -29,7 +31,7 @@ export interface FontItem { * Font category classification (e.g., "sans-serif", "serif", "display", "handwriting", "monospace") * Useful for grouping and filtering fonts by style */ - category: string; + category: FontCategory; /** * Available font variants for this font family