import { AdviceType, ComponentScopes, ComponentType, HttpMethodType, TransactionIsolationType, TransactionPropagationType } from "../enum"; import { ConstructorType, PojoType } from "./type"; export interface IComponent { packageName: string; name: string; cost: ConstructorType; type: ComponentType; props: Array; inited: boolean; isAop: boolean; scope: ComponentScopes; addProperty: (property: PojoType) => void; } export interface IFile { packageName: string; cost: ConstructorType; } export interface IController extends IComponent { route: string; } export interface IService extends IComponent { } export interface IDao extends IComponent { getConnection: (...params: any) => any; setAlive?: () => void; query?: (...params: any) => Promise>; execute?: (...params: any) => Promise; } export interface IResource { mappingName: string; propName: string; caller: any; } export interface IAspect { cost: ConstructorType; pointcuts: Array; setPointcuts: (pointcuts: Array, advices: Array) => void; } export interface IPointcut { cost: ConstructorType; name: string; execution: RegExp; advices: Array; setAdvices: (advices: Array) => void; } export interface IAdvice { cost: ConstructorType; pointcutName: string; type: AdviceType; value: any; } export interface IHttpSend { route: string; type: HttpMethodType; cost: ConstructorType; methodName: string; } export interface IStream { cost: ConstructorType; methodName: string; mineType: string; } export interface IUpload { cost: ConstructorType; methodName: string; } export interface ITransaction { isolation: TransactionIsolationType; propagation: TransactionPropagationType; cost: ConstructorType; methodName: string; method: Function; } export interface IReturnModel { status: number; data: any; message: string; } export interface IControllerParam { cost: ConstructorType; propName: string; index: number; requestName: string; require: boolean; }