Init Project...
This commit is contained in:
4
packages/cc-server-ioc/src/constant/types.ts
Normal file
4
packages/cc-server-ioc/src/constant/types.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export const METADATA_KEY = {
|
||||
container: "cc-server-core:container",
|
||||
service: "cc-server-core:service"
|
||||
};
|
||||
16
packages/cc-server-ioc/src/decorators.ts
Normal file
16
packages/cc-server-ioc/src/decorators.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import 'reflect-metadata'
|
||||
import { Container } from 'inversify';
|
||||
import { METADATA_KEY } from './constant/types';
|
||||
|
||||
function service(name: string | symbol) {
|
||||
return function(target: any) {
|
||||
let services = Reflect.getMetadata(METADATA_KEY.service, Reflect) || []
|
||||
services = [() => {
|
||||
let container: Container = Reflect.getMetadata(METADATA_KEY.container, Reflect)
|
||||
container.bind(name || target).to(target);
|
||||
}, ...services]
|
||||
Reflect.defineMetadata(METADATA_KEY.service, services, Reflect)
|
||||
}
|
||||
}
|
||||
|
||||
export { service }
|
||||
2
packages/cc-server-ioc/src/index.ts
Normal file
2
packages/cc-server-ioc/src/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export * from './constant/types'
|
||||
export * from './decorators'
|
||||
Reference in New Issue
Block a user