UNPKG

osu-api-extended

Version:

Advanced osu! api wrapper cover all V2 and V1 endpoints, and provide useful tools

41 lines (40 loc) 2.45 kB
import { IDefaultParams, IError, Modes_names } from "../../types"; import { scores_list_leaderboard_response } from "../../types/v2/scores_list_leaderboard"; import { scores_list_solo_scores_response } from "../../types/v2/scores_list_solo_scores"; import { scores_list_user_beatmap_best_response } from "../../types/v2/scores_list_user_beatmap_best"; import { scores_list_user_beatmap_all_response } from "../../types/v2/scores_list_user_beatmap_all"; import { scores_list_user_user_best_response } from "../../types/v2/scores_list_user_best"; import { scores_list_user_user_firsts_response } from "../../types/v2/scores_list_user_firsts"; import { scores_list_user_recent_response } from "../../types/v2/scores_list_user_recent"; import { scores_list_user_user_pinned_response } from "../../types/v2/scores_list_user_pinned"; import { scores_list_latest_ranked_response } from "../../types/v2/scores_list_latest_ranked"; type params = { mode?: Modes_names; } & ({ type: 'leaderboard' | 'solo_scores'; leaderboard_type?: 'global' | 'country' | 'friend'; beatmap_id: number; mods?: string[]; } | { type: 'user_beatmap_best'; beatmap_id: number; user_id: number; mods?: string[]; } | { type: 'user_beatmap_all'; beatmap_id: number; user_id: number; } | { type: 'user_best' | 'user_firsts' | 'user_recent' | 'user_pinned'; user_id: number; include_fails?: boolean; offset?: number; limit?: number; } | { type: 'latest_ranked'; mode: Modes_names; cursor_string?: string; }); type Response<T extends params['type']> = T extends 'leaderboard' ? scores_list_leaderboard_response[] & IError : T extends 'solo_scores' ? scores_list_solo_scores_response[] & IError : T extends 'beatmap_best' ? scores_list_user_beatmap_best_response[] & IError : T extends 'beatmap_all' ? scores_list_user_beatmap_all_response[] & IError : T extends 'user_best' ? scores_list_user_user_best_response[] & IError : T extends 'user_firsts' ? scores_list_user_user_firsts_response[] & IError : T extends 'user_recent' ? scores_list_user_recent_response[] & IError : T extends 'user_pinned' ? scores_list_user_user_pinned_response[] & IError : T extends 'latest_ranked' ? scores_list_latest_ranked_response & IError : IError; export declare const scores_list: <T extends params>(params: T, addons?: IDefaultParams) => Promise<Response<T["type"]>>; export {};