38 lines
979 B
TypeScript
38 lines
979 B
TypeScript
/**
|
|
* Stable query key factory for font-related queries.
|
|
* Ensures consistent serialization for batch requests by sorting IDs.
|
|
*/
|
|
export const fontKeys = {
|
|
/**
|
|
* Base key for all font queries
|
|
*/
|
|
all: ['fonts'] as const,
|
|
|
|
/**
|
|
* Keys for font list queries
|
|
*/
|
|
lists: () => [...fontKeys.all, 'list'] as const,
|
|
/**
|
|
* Specific font list key with filter parameters
|
|
*/
|
|
list: (params: object) => [...fontKeys.lists(), params] as const,
|
|
|
|
/**
|
|
* Keys for font batch queries
|
|
*/
|
|
batches: () => [...fontKeys.all, 'batch'] as const,
|
|
/**
|
|
* Specific batch key, sorted for stability
|
|
*/
|
|
batch: (ids: string[]) => [...fontKeys.batches(), [...ids].sort()] as const,
|
|
|
|
/**
|
|
* Keys for font detail queries
|
|
*/
|
|
details: () => [...fontKeys.all, 'detail'] as const,
|
|
/**
|
|
* Specific font detail key by ID
|
|
*/
|
|
detail: (id: string) => [...fontKeys.details(), id] as const,
|
|
} as const;
|