1234567891011121314151617181920212223242526272829 |
- import { Injector } from "./Injector";
- import { Type, GenericClassDecorator, Constructor } from "./Internals";
-
- /**
- * @returns {GenericClassDecorator<Type<any>>}
- * @constructor
- */
- export function Singleton(config?: {
- interface?: Constructor<any>,
- initializationPriority?: number
- }): GenericClassDecorator<Type<any>> {
-
- return (clazz: Type<any>) => {
- Injector['singletonDefinitions'].push({
- initializationPriority: config ?. initializationPriority,
- ctor: clazz
- })
-
- if(config && config.interface){
- Injector['tokenLookupTable'][config.interface.name] = clazz
- }
- }
- }
-
- export function Inject(token: Constructor<any>) {
- return function (receiver: Object, key: string) {
- Injector['injectionQueue'].push({ token, receiver, key })
- }
- }
|