UNPKG

steam-family-bot-core

Version:

一个用于新版 Steam 家庭的库存监控 Bot 插件

23 lines (22 loc) 1.25 kB
import { NetReqResult } from './interface'; type Res<Base, T> = Base extends true ? NetReqResult<T> : T; export declare class APIHelper<API, Base extends boolean = false> { constructor(); private retryTime; private _wrapper; private _onRetry; withRetry(times?: number, onRetry?: (retryTime: number, e?: any) => void): this; onRetry(func: (times: number, e: any) => void): this; call<T>(block: () => Promise<T>): Promise<Res<Base, T>>; wrapperResult(): ServiceWithAPIHelper<API, true>; } export type ServiceWithAPIHelper<API, Wrap extends boolean = false> = Wrapped<API, Wrap> & APIHelper<API, Wrap>; export type ServiceWithHelper<API, Wrap extends boolean = false> = Wrapped<API, Wrap> & { helper: APIHelper<API, Wrap>; }; type Wrapping<T, I extends boolean = false> = T extends (...args: infer Args) => infer R ? <Wrap extends boolean = false>(...args: Args) => R extends Promise<infer R1> ? I extends true ? Promise<NetReqResult<R1>> : Wrap extends true ? Promise<NetReqResult<R1>> : Promise<R1> : R : T; type Wrapped<T, Wrap extends boolean = false> = { [K in keyof T]: Wrapping<T[K], Wrap>; }; export declare function createProxiedAPIService<T extends object>(instance: T): ServiceWithAPIHelper<T>; export {};