高级装饰器 API
midway 内部有一套标准的装饰器管理器,用来所有装饰器对接 IoC 容器,扫描和扩展,我们称之为 decoratorManager
。
标准的的代码参考为 https://github.com/midwayjs/injection/blob/master/src/base/decoratorManager.ts
通过 decoratorManager
,我们可以自定义装饰器,并且将元数据附加其中,内部的各种装饰器都是通过该能力实现的。
decoratorManager
上有非常多的 get/set 方法,用于不同场景装饰器的处理,常见的有:
装饰器 **
saveModule
用于保存某个类到某个装饰器listModule
获取所有绑定到某类型装饰器的 class
元信息 (对应 reflect-metadata) **
saveClassMetadata
保存元信息到 classattachClassMetadata
附加元信息到 classgetClassMetadata
从 class 获取元信息savePropertyDataToClass
保存属性的元信息到 classattachPropertyDataToClass
附加属性的元信息到 classgetPropertyDataFromClass
从 class 获取属性元信息listPropertyDataFromClass
列出输出所有的元数据savePropertyMetadata
保存属性元信息到属性本身attachPropertyMetadata
附加属性元信息到属性本身getPropertyMetadata
从属性上获取保存的元信息
快捷操作
getProviderId
获取 class 上 provide 出来的 idgetObjectDefinition
获取对象定义(ObjectDefiniton)getParamNames
获取一个函数的所有参数名clearAllModule
清理装饰器对应的 class map(对应 saveModule)