feat: add cc-server-db
This commit is contained in:
		@@ -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"
 | 
			
		||||
}
 | 
			
		||||
@@ -1,4 +0,0 @@
 | 
			
		||||
export const METADATA_KEY = {
 | 
			
		||||
    container: "cc-server-core:container",
 | 
			
		||||
    service: "cc-server-core:service"
 | 
			
		||||
};
 | 
			
		||||
@@ -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 }
 | 
			
		||||
@@ -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 };
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user