hensei-web/src/lib/query/keys.ts
Justin Edmund aa16d58175 add tanstack query with infinite scroll support
- integrate @tanstack/svelte-query into layout
- add query client factory and query keys
- new InfiniteScrollQuery component for paginated data
- search query options for weapons/characters/summons
- update dev port to 5174
2025-11-28 11:00:57 -08:00

25 lines
965 B
TypeScript

/**
* Query key factory for type-safe cache keys
* Keys are structured hierarchically for easy invalidation
*/
export const queryKeys = {
search: {
all: ['search'] as const,
weapons: (query: string, filters?: Record<string, unknown>) =>
[...queryKeys.search.all, 'weapons', query, filters] as const,
characters: (query: string, filters?: Record<string, unknown>) =>
[...queryKeys.search.all, 'characters', query, filters] as const,
summons: (query: string, filters?: Record<string, unknown>) =>
[...queryKeys.search.all, 'summons', query, filters] as const
},
parties: {
all: ['parties'] as const,
explore: () => [...queryKeys.parties.all, 'explore'] as const,
user: (username: string) => [...queryKeys.parties.all, 'user', username] as const
},
jobs: {
all: ['jobs'] as const,
skills: (jobId: string, query?: string, filters?: Record<string, unknown>) =>
[...queryKeys.jobs.all, 'skills', jobId, query, filters] as const
}
}