From 9de256c76ecb8b71b2c84a36c6e972d65b489add Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 1 Mar 2026 15:21:28 -0800 Subject: chore(types): decouple app code from fragile generated route types --- src/graphql/anime/resolvers.ts | 9 +++++++-- src/graphql/user/resolvers.ts | 5 +++-- src/lib/User/BadgeWall/badge.ts | 2 +- src/routes/user/[user]/badges/+page.svelte | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/graphql/anime/resolvers.ts b/src/graphql/anime/resolvers.ts index 5f49b364..f2fc4b61 100644 --- a/src/graphql/anime/resolvers.ts +++ b/src/graphql/anime/resolvers.ts @@ -1,7 +1,12 @@ import type { WithIndex } from '../$types'; -import type { Resolvers } from './$types'; +import type { Resolvers as RootResolvers } from '../$types'; -export const resolvers: WithIndex = { +type AnimeResolvers = Pick< + RootResolvers, + 'Query' | 'Anime' | 'Subtitles' | 'SubtitleSchedule' | 'Subtitle' +>; + +export const resolvers: WithIndex = { Query: { Anime: async (_, args) => { const timezone = args.timezone || 'Asia/Tokyo'; diff --git a/src/graphql/user/resolvers.ts b/src/graphql/user/resolvers.ts index 9773d8b0..879d066d 100644 --- a/src/graphql/user/resolvers.ts +++ b/src/graphql/user/resolvers.ts @@ -10,7 +10,7 @@ import { type Badge as DatabaseBadge } from '$lib/Database/SB/User/badges'; import type { WithIndex } from '../$types'; -import type { Resolvers, Badge } from './$types'; +import type { Resolvers as RootResolvers, Badge } from '../$types'; import type { RequestEvent } from '@sveltejs/kit'; import { getUserPreferences, @@ -26,6 +26,7 @@ import { import privilegedUser from '$lib/Utility/privilegedUser'; type Context = RequestEvent>, string | null>; +type UserResolvers = Pick; const toGraphQLBadges = (databaseBadges: DatabaseBadge[]): Badge[] => databaseBadges.map((databaseBadge) => ({ @@ -118,7 +119,7 @@ const ensureBadgeOwnerOrPrivileged = async ( if (!ownsBadge) throw new Error('Unauthorized'); }; -export const resolvers: WithIndex = { +export const resolvers: WithIndex = { Query: { User: async (_, args) => { if (!args.id) return null; diff --git a/src/lib/User/BadgeWall/badge.ts b/src/lib/User/BadgeWall/badge.ts index a4ba431f..8a8726dc 100644 --- a/src/lib/User/BadgeWall/badge.ts +++ b/src/lib/User/BadgeWall/badge.ts @@ -1,4 +1,4 @@ -import type { Badge } from '../../../graphql/user/$types'; +import type { Badge } from '../../../graphql/$types'; export interface IndexedBadge extends Badge { index: number; diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte index 386fe7b1..d302de7f 100644 --- a/src/routes/user/[user]/badges/+page.svelte +++ b/src/routes/user/[user]/badges/+page.svelte @@ -23,7 +23,7 @@ import Badges from '$lib/User/BadgeWall/Badges.svelte'; import type { IndexedBadge } from '$lib/User/BadgeWall/badge'; import { graphql } from '$houdini'; - import type { Preferences } from '../../../../graphql/user/$types'; + import type { Preferences } from '../../../../graphql/$types'; import localforage from 'localforage'; export let data; -- cgit v1.2.3