feat: add cc-server-db

This commit is contained in:
2019-06-11 13:09:50 +08:00
parent 7d84393a3c
commit 73daf1e44e
18 changed files with 129 additions and 87 deletions

View File

@@ -10,10 +10,14 @@
"registry": "https://repo.yumc.pw/repository/npm-hosted/"
},
"scripts": {
"build": "npx tsc",
"test": "echo \"Error: run tests from root\" && exit 1"
},
"dependencies": {
"inversify": "^5.0.1",
"reflect-metadata": "^0.1.13"
}
}
"inversify-binding-decorators": "^4.0.0",
"reflect-metadata": "^0.1.13",
"typescript": "^3.5.1"
},
"gitHead": "7d84393a3cb6be6be9ed51d71f12677d2d7d0728"
}

View File

@@ -1,4 +0,0 @@
export const METADATA_KEY = {
container: "cc-server-core:container",
service: "cc-server-core:service"
};

View File

@@ -1,16 +0,0 @@
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 }

View File

@@ -1,2 +1,22 @@
export * from './constant/types'
export * from './decorators'
import "reflect-metadata";
import { Container, inject } from 'inversify';
import { autoProvide, provide, fluentProvide, buildProviderModule } from 'inversify-binding-decorators';
let container = new Container();
// Reflects all decorators provided by this package and packages them into
// a module to be loaded by the container
// container.load(buildProviderModule());
const provideNamed = (identifier, name) => {
return fluentProvide(identifier)
.whenTargetNamed(name)
.done();
};
const provideSingleton = (identifier: any) => {
return fluentProvide(identifier)
.inSingletonScope()
.done();
};
export { container, autoProvide, provide, provideNamed, provideSingleton, inject, buildProviderModule };