UNPKG

ts-api-core

Version:

Nodejs api framework core

71 lines (70 loc) 3.49 kB
import 'reflect-metadata'; export declare type DataType = 'number' | 'string' | Record<any, any> | undefined; export interface ParamItem { name: string; type: string; index: number; dataType: DataType; } export interface Method { subUrl: string; httpMethod: string; params: ParamItem[]; midwares?: (() => any)[]; } export interface Router { [methodName: string]: Method; } export interface Clazz { baseUrl: string; routes: Router; midwares?: (() => any)[]; logPackage?: boolean; validateif?: (v: any) => boolean; } export declare const getClazz: (target: any) => Clazz; export declare const getMethod: (target: any, methodName: any) => Method; /** * Service class decorator. * * @Controller('/user') * class UserService { * } * @param baseUrl 基础路径 * @param logPackage 是否输出 api 日志 * */ export declare function Controller(baseUrl?: string, midwares?: (() => any)[], logPackage?: boolean): (target: any) => void; /** * * @GET('/user/:name') * list(@PathParam('name') name:string) */ export declare const Get: (url: string, midwares?: any[] | undefined) => (target: any, methodName: string, descriptor: PropertyDescriptor) => void; export declare const Post: (url: string, midwares?: any[] | undefined) => (target: any, methodName: string, descriptor: PropertyDescriptor) => void; export declare const Delete: (url: string, midwares?: any[] | undefined) => (target: any, methodName: string, descriptor: PropertyDescriptor) => void; export declare const Put: (url: string, midwares?: any[] | undefined) => (target: any, methodName: string, descriptor: PropertyDescriptor) => void; export declare const GetPost: (url: string, midwares?: any[] | undefined) => (target: any, methodName: string, descriptor: PropertyDescriptor) => void; /** * * list(@PathParam('name') name:string) * */ export declare const Param: (paramName?: string | undefined, dataType?: DataType) => (target: any, methodName: string, paramIndex: number) => void; export declare const Query: (paramName?: string | undefined, dataType?: DataType) => (target: any, methodName: string, paramIndex: number) => void; export declare const Body: (paramName?: string | undefined, dataType?: DataType) => (target: any, methodName: string, paramIndex: number) => void; export declare const Cookie: (paramName?: string | undefined, dataType?: DataType) => (target: any, methodName: string, paramIndex: number) => void; export declare const Headers: (paramName?: string | undefined, dataType?: DataType) => (target: any, methodName: string, paramIndex: number) => void; export declare const Token: (target: any, methodName: string, paramIndex: number) => void; export declare const Esn: (target: any, methodName: string, paramIndex: number) => void; /** * * @GET('/get') * list(@Request request, @Response res) */ export declare const HttpRequest: (target: any, methodName: string, paramIndex: number) => void; export declare const HttpResponse: (target: any, methodName: string, paramIndex: number) => void; /** 参数值是原始的Http请求Body数据 */ export declare const HttpBody: (target: any, methodName: string, paramIndex: number) => void; /** 参数值是Http请求的Body数据自动转换的Model对象, 与 Body 的区别的是,会自动合并未知字段 */ export declare const HttpBodyModel: (target: any, methodName: string, paramIndex: number) => void;