ts-api-core
Version:
Nodejs api framework core
71 lines (70 loc) • 3.49 kB
TypeScript
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;