UNPKG

koishi-plugin-yunzai

Version:
35 lines (34 loc) 1.4 kB
import { APIRegion, APIStencil, ActID } from "./interface/basicAPI.interface"; import { GetRegion, RegionType } from "./utils/Region"; export declare namespace BBSApi { /** * hostBy所指API地址 */ export const region: APIRegion; /** * act_id */ export const actId: ActID; /** * 请求所用的API模板 */ export const stencil: APIStencil; type ApiList = keyof typeof stencil; type AvailableRegions = keyof typeof region; type AvailableUnion<K extends ApiList> = typeof stencil[K]['availableFor'][number]; export type For<R extends AvailableRegions> = { [K in ApiList as R extends AvailableUnion<K> ? K : never]: typeof stencil[K]; }; /** * 获取该地区支持的API */ export type Keys<R extends RegionType> = keyof For<GetRegion<R>>; /** * 获取API请求参数条件 */ export type Params<R extends RegionType, A extends Keys<R>> = { [K in For<GetRegion<R>>[A]['parameters'][number][0]]: ReturnType<For<GetRegion<R>>[A]['parameters'][number][1]>; }; export type RequestTyper<R extends RegionType, K extends Keys<R> = Keys<R>> = K extends 'bbsSign' ? Sign : K extends 'bbsSignHome' ? SignHome : K extends 'bbsSignInfo' ? SignInfo : K extends 'dailyNote' ? DailyNote : K extends 'abyss' ? Abyss : K extends 'character' ? Character : any; export {}; }