UNPKG

@zikeji/hypixel

Version:

With IntelliSense support & test coverage, this is an unopinionated async/await API wrapper for Hypixel's Public API. It is developed in TypeScript complete with documentation, typed interfaces for all API responses, built-in rate-limit handling, flexible

18 lines (17 loc) 1.07 kB
import { DefaultMeta } from "../types/DefaultMeta"; /** * Generic intersection type for result objects to include metadata as a non-enumerable property. * @example * ```typescript * const result = await client.watchdogstats(); * console.log(result); * // {watchdog_lastMinute: 1, staff_rollingDaily: 2609, watchdog_total: 5591714, watchdog_rollingDaily: 4213, …} * console.log(result.meta) * // {success: true} * ``` */ export type ResultObject<T extends Record<string, unknown>, K extends (keyof T)[], B extends true | void = void> = (B extends true ? T : T[K[number]] extends string | number | boolean | undefined ? OmitRespectingRemapping<T, K[number]> : T[K[number]]) & { meta: B extends true ? DefaultMeta : (T[K[number]] extends string | number | boolean | undefined ? Pick<T, K[number]> : OmitRespectingRemapping<T, K[number]>) & DefaultMeta; }; /** @hidden */ export declare function getResultObject<T, K extends (keyof T)[], B extends true | void = void>(response: T & DefaultMeta, keys?: K): ResultObject<T & Record<string, unknown>, K, B>;