/** * Request Graph Type Definitions * * Shared request graph names and key-like types. * Request metadata is derived from the central RouteSchema. * * @module */ import type { GameKey, LeagueKey, PendingTradeKey, PlayerKey, ResourceKey, TeamKey, TransactionKey, WaiverClaimKey } from '../common.js'; import type { InferResponseType } from './response-routes.js'; import type { FilterKeyForStage, GameOutValue, LeagueOutValue, NavigationMethodNamesForStage, OutValueForStage, PlayerOutValue, RouteStage, TeamOutValue } from './schema.js'; export type { GameKey, LeagueKey, PendingTradeKey, PlayerKey, ResourceKey, TeamKey, TransactionKey, WaiverClaimKey, } from '../common.js'; type WithString = T | (string & {}); export type GameKeyLike = WithString; export type LeagueKeyLike = WithString; export type TeamKeyLike = WithString; export type PlayerKeyLike = WithString; export type TransactionKeyLike = WithString; export type WaiverClaimKeyLike = WithString; export type PendingTradeKeyLike = WithString; export type ResourceKeyLike = WithString; export type ResourceName = 'game' | 'league' | 'team' | 'player' | 'user' | 'transaction'; export type CollectionName = 'games' | 'leagues' | 'teams' | 'players' | 'users' | 'transactions'; export type SubResourceName = GameOutValue | LeagueOutValue | TeamOutValue | PlayerOutValue | Extract, CollectionName> | 'draftresults' | 'metadata'; type ResourceStageMap = { game: 'game'; league: 'league'; team: 'team'; player: 'player'; user: 'users'; transaction: 'transaction'; }; type ResourceStage = ResourceStageMap[T]; export interface ResourceDefinition { resource: TKey; collections: TCollections[]; subResources: TSubResources[]; filters: TFilters[]; responseType: TResponse; } type ResourceCollections = Extract, CollectionName>; type DerivedResourceDefinition = never> = ResourceDefinition, OutValueForStage, FilterKeyForStage, InferResponseType>; export type GetResourceDef = never> = DerivedResourceDefinition, TSelectedOut>; export type GetCollections = GetResourceDef['collections'][number]; export type GetSubResources = GetResourceDef['subResources'][number]; export type GetFilters = GetResourceDef['filters'][number]; export type GetResponseType = never> = GetResourceDef['responseType']; //# sourceMappingURL=graph.d.ts.map