UNPKG

forget-api

Version:

无需封装 Axios,无需写接口请求函数,无需维护返回值类型,把这些琐碎重复的事情交给工具来处理,让精力聚焦在核心功能的实现上。

19 lines (18 loc) 981 B
import { ControllerOptions } from '@nestjs/common'; export declare type Mark<T> = T & { [Symbol.unscopables]: unknown; }; declare type InferRequestParams<T> = T extends [infer U, ...infer REST] ? U extends Mark<infer V> ? V & InferRequestParams<REST> : InferRequestParams<REST> : {}; declare type RequestParams<T, Params = InferRequestParams<T>> = [keyof Params] extends [ never ] ? void : Params; export declare function defineExpose<T>(Ctor: new (...args: any) => T): { [key in keyof T]: T[key] extends (...args: infer Args) => infer Result ? (data: RequestParams<Args> | BodyInit, options?: RequestInit) => Result extends Promise<any> ? Result : Promise<Result> : never; }; /** * @example ```@Controller(__filename)``` */ export declare function Controller(): ClassDecorator; export declare function Controller(prefix: string | string[]): ClassDecorator; export declare function Controller(options: ControllerOptions): ClassDecorator; export {};