ts-ioc-container 13.2.4 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjm/automock/AutoMockedContainer.d.ts +13 -0
- package/cjm/{features/mock/MockedServiceLocator.js → automock/AutoMockedContainer.js} +17 -16
- package/cjm/automock/AutoMockedContainer.js.map +1 -0
- package/cjm/automock/IMockRepository.d.ts +3 -0
- package/cjm/{features/mock → automock}/IMockRepository.js +0 -0
- package/cjm/automock/IMockRepository.js.map +1 -0
- package/cjm/core/IInjector.d.ts +3 -3
- package/cjm/core/container/Container.d.ts +25 -0
- package/cjm/core/{ServiceLocator.js → container/Container.js} +37 -40
- package/cjm/core/container/Container.js.map +1 -0
- package/cjm/core/container/ContainerDisposedError.d.ts +5 -0
- package/cjm/{errors/NoRegistrationKeysProvided.js → core/container/ContainerDisposedError.js} +15 -10
- package/cjm/core/container/ContainerDisposedError.js.map +1 -0
- package/cjm/core/container/EmptyContainer.d.ts +10 -0
- package/cjm/core/container/EmptyContainer.js +30 -0
- package/cjm/core/container/EmptyContainer.js.map +1 -0
- package/cjm/core/container/IContainer.d.ts +13 -0
- package/cjm/{features → core}/container/IContainer.js +0 -0
- package/cjm/core/container/IContainer.js.map +1 -0
- package/cjm/core/container/IContainerHook.d.ts +6 -0
- package/cjm/core/{IInstanceHook.js → container/IContainerHook.js} +4 -4
- package/cjm/core/container/IContainerHook.js.map +1 -0
- package/cjm/core/provider/IProvider.d.ts +9 -5
- package/cjm/core/provider/IProvider.js +5 -0
- package/cjm/core/provider/IProvider.js.map +1 -1
- package/cjm/{features/container → core/provider}/IProvidersMetadataCollector.d.ts +2 -2
- package/cjm/{features/container → core/provider}/IProvidersMetadataCollector.js +0 -0
- package/cjm/core/provider/IProvidersMetadataCollector.js.map +1 -0
- package/cjm/core/provider/Provider.d.ts +9 -4
- package/cjm/core/provider/Provider.js +28 -4
- package/cjm/core/provider/Provider.js.map +1 -1
- package/cjm/core/provider/ProviderDecorator.d.ts +6 -4
- package/cjm/core/provider/ProviderDecorator.js +8 -2
- package/cjm/core/provider/ProviderDecorator.js.map +1 -1
- package/cjm/core/provider/ProviderHasNoKeyError.d.ts +4 -0
- package/cjm/{errors/LocatorDisposedError.js → core/provider/ProviderHasNoKeyError.js} +9 -9
- package/cjm/core/provider/ProviderHasNoKeyError.js.map +1 -0
- package/{esm/errors → cjm/core/provider}/ProviderNotFoundError.d.ts +1 -1
- package/cjm/{errors → core/provider}/ProviderNotFoundError.js +2 -2
- package/cjm/core/provider/ProviderNotFoundError.js.map +1 -0
- package/cjm/core/provider/ProviderRepo.d.ts +8 -0
- package/cjm/core/{ProviderRepo.js → provider/ProviderRepo.js} +22 -7
- package/cjm/core/provider/ProviderRepo.js.map +1 -0
- package/cjm/{features/container → core/provider}/ProvidersMetadataCollector.d.ts +1 -1
- package/cjm/{features/container → core/provider}/ProvidersMetadataCollector.js +2 -2
- package/cjm/core/provider/ProvidersMetadataCollector.js.map +1 -0
- package/cjm/{errors → core/utils}/MethodNotImplementedError.d.ts +0 -0
- package/cjm/{errors → core/utils}/MethodNotImplementedError.js +0 -0
- package/cjm/core/utils/MethodNotImplementedError.js.map +1 -0
- package/cjm/{helpers/utils.d.ts → core/utils/others.d.ts} +0 -0
- package/cjm/{helpers/utils.js → core/utils/others.js} +1 -1
- package/cjm/core/utils/others.js.map +1 -0
- package/cjm/{helpers → core/utils}/types.d.ts +0 -0
- package/cjm/{helpers → core/utils}/types.js +0 -0
- package/cjm/core/utils/types.js.map +1 -0
- package/{esm/features/instanceHook/InstanceHook.d.ts → cjm/hooks/ContainerHook.d.ts} +3 -3
- package/cjm/{features/instanceHook/InstanceHook.js → hooks/ContainerHook.js} +13 -13
- package/cjm/hooks/ContainerHook.js.map +1 -0
- package/cjm/hooks/IMethodsMetadataCollector.d.ts +5 -0
- package/cjm/{features/instanceHook/decorators.js → hooks/IMethodsMetadataCollector.js} +1 -1
- package/cjm/hooks/IMethodsMetadataCollector.js.map +1 -0
- package/cjm/{features/instanceHook → hooks}/MethodsMetadataCollector.d.ts +0 -0
- package/cjm/{features/instanceHook → hooks}/MethodsMetadataCollector.js +0 -0
- package/cjm/hooks/MethodsMetadataCollector.js.map +1 -0
- package/cjm/index.d.ts +40 -29
- package/cjm/index.js +91 -39
- package/cjm/index.js.map +1 -1
- package/cjm/injectors/ProxyInjector.d.ts +7 -0
- package/cjm/{features/injectors → injectors}/ProxyInjector.js +2 -2
- package/cjm/injectors/ProxyInjector.js.map +1 -0
- package/cjm/injectors/SimpleInjector.d.ts +6 -0
- package/cjm/{features/injectors → injectors}/SimpleInjector.js +2 -2
- package/cjm/injectors/SimpleInjector.js.map +1 -0
- package/cjm/providers/ArgsProvider.d.ts +13 -0
- package/cjm/{core/provider → providers}/ArgsProvider.js +14 -4
- package/cjm/providers/ArgsProvider.js.map +1 -0
- package/cjm/providers/LevelProvider.d.ts +11 -0
- package/cjm/{features/providers → providers}/LevelProvider.js +12 -2
- package/cjm/providers/LevelProvider.js.map +1 -0
- package/cjm/providers/ProviderBuilder.d.ts +15 -0
- package/cjm/{features/container → providers}/ProviderBuilder.js +8 -31
- package/cjm/providers/ProviderBuilder.js.map +1 -0
- package/cjm/providers/SingletonProvider.d.ts +13 -0
- package/cjm/{features/providers → providers}/SingletonProvider.js +13 -5
- package/cjm/providers/SingletonProvider.js.map +1 -0
- package/cjm/providers/TaggedProvider.d.ts +11 -0
- package/cjm/providers/TaggedProvider.js +80 -0
- package/cjm/providers/TaggedProvider.js.map +1 -0
- package/esm/automock/AutoMockedContainer.d.ts +13 -0
- package/esm/{features/mock/MockedServiceLocator.js → automock/AutoMockedContainer.js} +9 -8
- package/esm/automock/AutoMockedContainer.js.map +1 -0
- package/esm/automock/IMockRepository.d.ts +3 -0
- package/esm/{features/mock → automock}/IMockRepository.js +0 -0
- package/esm/automock/IMockRepository.js.map +1 -0
- package/esm/core/IInjector.d.ts +3 -3
- package/esm/core/container/Container.d.ts +25 -0
- package/esm/core/{ServiceLocator.js → container/Container.js} +22 -25
- package/esm/core/container/Container.js.map +1 -0
- package/esm/core/container/ContainerDisposedError.d.ts +5 -0
- package/esm/core/container/ContainerDisposedError.js +13 -0
- package/esm/core/container/ContainerDisposedError.js.map +1 -0
- package/esm/core/container/EmptyContainer.d.ts +10 -0
- package/esm/core/container/EmptyContainer.js +23 -0
- package/esm/core/container/EmptyContainer.js.map +1 -0
- package/esm/core/container/IContainer.d.ts +13 -0
- package/esm/{features → core}/container/IContainer.js +0 -0
- package/esm/core/container/IContainer.js.map +1 -0
- package/esm/core/container/IContainerHook.d.ts +6 -0
- package/esm/core/{IInstanceHook.js → container/IContainerHook.js} +2 -2
- package/esm/core/container/IContainerHook.js.map +1 -0
- package/esm/core/provider/IProvider.d.ts +9 -5
- package/esm/core/provider/IProvider.js +3 -1
- package/esm/core/provider/IProvider.js.map +1 -1
- package/esm/{features/container → core/provider}/IProvidersMetadataCollector.d.ts +2 -2
- package/esm/{features/container → core/provider}/IProvidersMetadataCollector.js +0 -0
- package/esm/core/provider/IProvidersMetadataCollector.js.map +1 -0
- package/esm/core/provider/Provider.d.ts +9 -4
- package/esm/core/provider/Provider.js +22 -3
- package/esm/core/provider/Provider.js.map +1 -1
- package/esm/core/provider/ProviderDecorator.d.ts +6 -4
- package/esm/core/provider/ProviderDecorator.js +8 -2
- package/esm/core/provider/ProviderDecorator.js.map +1 -1
- package/esm/core/provider/ProviderHasNoKeyError.d.ts +4 -0
- package/esm/core/provider/ProviderHasNoKeyError.js +8 -0
- package/esm/core/provider/ProviderHasNoKeyError.js.map +1 -0
- package/{cjm/errors → esm/core/provider}/ProviderNotFoundError.d.ts +1 -1
- package/esm/{errors → core/provider}/ProviderNotFoundError.js +2 -2
- package/esm/core/provider/ProviderNotFoundError.js.map +1 -0
- package/esm/core/provider/ProviderRepo.d.ts +8 -0
- package/esm/core/provider/ProviderRepo.js +25 -0
- package/esm/core/provider/ProviderRepo.js.map +1 -0
- package/esm/{features/container → core/provider}/ProvidersMetadataCollector.d.ts +1 -1
- package/esm/{features/container → core/provider}/ProvidersMetadataCollector.js +1 -1
- package/esm/core/provider/ProvidersMetadataCollector.js.map +1 -0
- package/esm/{errors → core/utils}/MethodNotImplementedError.d.ts +0 -0
- package/esm/{errors → core/utils}/MethodNotImplementedError.js +0 -0
- package/esm/core/utils/MethodNotImplementedError.js.map +1 -0
- package/esm/{helpers/utils.d.ts → core/utils/others.d.ts} +0 -0
- package/esm/{helpers/utils.js → core/utils/others.js} +1 -1
- package/esm/core/utils/others.js.map +1 -0
- package/esm/{helpers → core/utils}/types.d.ts +0 -0
- package/esm/{helpers → core/utils}/types.js +0 -0
- package/esm/core/utils/types.js.map +1 -0
- package/{cjm/features/instanceHook/InstanceHook.d.ts → esm/hooks/ContainerHook.d.ts} +3 -3
- package/esm/{features/instanceHook/InstanceHook.js → hooks/ContainerHook.js} +4 -4
- package/esm/hooks/ContainerHook.js.map +1 -0
- package/esm/hooks/IMethodsMetadataCollector.d.ts +5 -0
- package/esm/{features/instanceHook/decorators.js → hooks/IMethodsMetadataCollector.js} +1 -1
- package/esm/hooks/IMethodsMetadataCollector.js.map +1 -0
- package/esm/{features/instanceHook → hooks}/MethodsMetadataCollector.d.ts +0 -0
- package/esm/{features/instanceHook → hooks}/MethodsMetadataCollector.js +0 -0
- package/esm/hooks/MethodsMetadataCollector.js.map +1 -0
- package/esm/index.d.ts +40 -29
- package/esm/index.js +38 -18
- package/esm/index.js.map +1 -1
- package/esm/injectors/ProxyInjector.d.ts +7 -0
- package/esm/{features/injectors → injectors}/ProxyInjector.js +2 -2
- package/esm/injectors/ProxyInjector.js.map +1 -0
- package/esm/injectors/SimpleInjector.d.ts +6 -0
- package/esm/injectors/SimpleInjector.js +6 -0
- package/esm/injectors/SimpleInjector.js.map +1 -0
- package/esm/providers/ArgsProvider.d.ts +13 -0
- package/esm/providers/ArgsProvider.js +20 -0
- package/esm/providers/ArgsProvider.js.map +1 -0
- package/esm/providers/LevelProvider.d.ts +11 -0
- package/esm/{features/providers → providers}/LevelProvider.js +6 -1
- package/esm/providers/LevelProvider.js.map +1 -0
- package/esm/providers/ProviderBuilder.d.ts +15 -0
- package/esm/providers/ProviderBuilder.js +40 -0
- package/esm/providers/ProviderBuilder.js.map +1 -0
- package/esm/providers/SingletonProvider.d.ts +13 -0
- package/esm/providers/SingletonProvider.js +29 -0
- package/esm/providers/SingletonProvider.js.map +1 -0
- package/esm/providers/TaggedProvider.d.ts +11 -0
- package/esm/{features/providers → providers}/TaggedProvider.js +6 -1
- package/esm/providers/TaggedProvider.js.map +1 -0
- package/package.json +4 -4
- package/cjm/core/EmptyServiceLocator.d.ts +0 -12
- package/cjm/core/EmptyServiceLocator.js +0 -33
- package/cjm/core/EmptyServiceLocator.js.map +0 -1
- package/cjm/core/IInstanceHook.d.ts +0 -7
- package/cjm/core/IInstanceHook.js.map +0 -1
- package/cjm/core/IServiceLocator.d.ts +0 -15
- package/cjm/core/IServiceLocator.js +0 -8
- package/cjm/core/IServiceLocator.js.map +0 -1
- package/cjm/core/ProviderRepo.d.ts +0 -9
- package/cjm/core/ProviderRepo.js.map +0 -1
- package/cjm/core/ServiceLocator.d.ts +0 -25
- package/cjm/core/ServiceLocator.js.map +0 -1
- package/cjm/core/provider/ArgsProvider.d.ts +0 -11
- package/cjm/core/provider/ArgsProvider.js.map +0 -1
- package/cjm/errors/LocatorDisposedError.d.ts +0 -4
- package/cjm/errors/LocatorDisposedError.js.map +0 -1
- package/cjm/errors/MethodNotImplementedError.js.map +0 -1
- package/cjm/errors/NoRegistrationKeysProvided.d.ts +0 -4
- package/cjm/errors/NoRegistrationKeysProvided.js.map +0 -1
- package/cjm/errors/ProviderNotFoundError.js.map +0 -1
- package/cjm/features/container/Container.d.ts +0 -16
- package/cjm/features/container/Container.js +0 -62
- package/cjm/features/container/Container.js.map +0 -1
- package/cjm/features/container/ContainerProvider.d.ts +0 -9
- package/cjm/features/container/ContainerProvider.js +0 -44
- package/cjm/features/container/ContainerProvider.js.map +0 -1
- package/cjm/features/container/IContainer.d.ts +0 -8
- package/cjm/features/container/IContainer.js.map +0 -1
- package/cjm/features/container/IContainerProvider.d.ts +0 -4
- package/cjm/features/container/IContainerProvider.js +0 -3
- package/cjm/features/container/IContainerProvider.js.map +0 -1
- package/cjm/features/container/IProvidersMetadataCollector.js.map +0 -1
- package/cjm/features/container/ProviderBuilder.d.ts +0 -23
- package/cjm/features/container/ProviderBuilder.js.map +0 -1
- package/cjm/features/container/ProvidersMetadataCollector.js.map +0 -1
- package/cjm/features/container/decorators.d.ts +0 -9
- package/cjm/features/container/decorators.js +0 -91
- package/cjm/features/container/decorators.js.map +0 -1
- package/cjm/features/injectors/ProxyInjector.d.ts +0 -6
- package/cjm/features/injectors/ProxyInjector.js.map +0 -1
- package/cjm/features/injectors/SimpleInjector.d.ts +0 -6
- package/cjm/features/injectors/SimpleInjector.js.map +0 -1
- package/cjm/features/instanceHook/IMethodsMetadataCollector.d.ts +0 -4
- package/cjm/features/instanceHook/IMethodsMetadataCollector.js +0 -3
- package/cjm/features/instanceHook/IMethodsMetadataCollector.js.map +0 -1
- package/cjm/features/instanceHook/InstanceHook.js.map +0 -1
- package/cjm/features/instanceHook/MethodsMetadataCollector.js.map +0 -1
- package/cjm/features/instanceHook/decorators.d.ts +0 -2
- package/cjm/features/instanceHook/decorators.js.map +0 -1
- package/cjm/features/mock/IMockRepository.d.ts +0 -4
- package/cjm/features/mock/IMockRepository.js.map +0 -1
- package/cjm/features/mock/MockedServiceLocator.d.ts +0 -13
- package/cjm/features/mock/MockedServiceLocator.js.map +0 -1
- package/cjm/features/providers/LevelProvider.d.ts +0 -9
- package/cjm/features/providers/LevelProvider.js.map +0 -1
- package/cjm/features/providers/SingletonProvider.d.ts +0 -11
- package/cjm/features/providers/SingletonProvider.js.map +0 -1
- package/cjm/features/providers/TaggedProvider.d.ts +0 -9
- package/cjm/features/providers/TaggedProvider.js +0 -38
- package/cjm/features/providers/TaggedProvider.js.map +0 -1
- package/cjm/helpers/types.js.map +0 -1
- package/cjm/helpers/utils.js.map +0 -1
- package/esm/core/EmptyServiceLocator.d.ts +0 -12
- package/esm/core/EmptyServiceLocator.js +0 -26
- package/esm/core/EmptyServiceLocator.js.map +0 -1
- package/esm/core/IInstanceHook.d.ts +0 -7
- package/esm/core/IInstanceHook.js.map +0 -1
- package/esm/core/IServiceLocator.d.ts +0 -15
- package/esm/core/IServiceLocator.js +0 -4
- package/esm/core/IServiceLocator.js.map +0 -1
- package/esm/core/ProviderRepo.d.ts +0 -9
- package/esm/core/ProviderRepo.js +0 -21
- package/esm/core/ProviderRepo.js.map +0 -1
- package/esm/core/ServiceLocator.d.ts +0 -25
- package/esm/core/ServiceLocator.js.map +0 -1
- package/esm/core/provider/ArgsProvider.d.ts +0 -11
- package/esm/core/provider/ArgsProvider.js +0 -15
- package/esm/core/provider/ArgsProvider.js.map +0 -1
- package/esm/errors/LocatorDisposedError.d.ts +0 -4
- package/esm/errors/LocatorDisposedError.js +0 -8
- package/esm/errors/LocatorDisposedError.js.map +0 -1
- package/esm/errors/MethodNotImplementedError.js.map +0 -1
- package/esm/errors/NoRegistrationKeysProvided.d.ts +0 -4
- package/esm/errors/NoRegistrationKeysProvided.js +0 -8
- package/esm/errors/NoRegistrationKeysProvided.js.map +0 -1
- package/esm/errors/ProviderNotFoundError.js.map +0 -1
- package/esm/features/container/Container.d.ts +0 -16
- package/esm/features/container/Container.js +0 -27
- package/esm/features/container/Container.js.map +0 -1
- package/esm/features/container/ContainerProvider.d.ts +0 -9
- package/esm/features/container/ContainerProvider.js +0 -16
- package/esm/features/container/ContainerProvider.js.map +0 -1
- package/esm/features/container/IContainer.d.ts +0 -8
- package/esm/features/container/IContainer.js.map +0 -1
- package/esm/features/container/IContainerProvider.d.ts +0 -4
- package/esm/features/container/IContainerProvider.js +0 -2
- package/esm/features/container/IContainerProvider.js.map +0 -1
- package/esm/features/container/IProvidersMetadataCollector.js.map +0 -1
- package/esm/features/container/ProviderBuilder.d.ts +0 -23
- package/esm/features/container/ProviderBuilder.js +0 -55
- package/esm/features/container/ProviderBuilder.js.map +0 -1
- package/esm/features/container/ProvidersMetadataCollector.js.map +0 -1
- package/esm/features/container/decorators.d.ts +0 -9
- package/esm/features/container/decorators.js +0 -26
- package/esm/features/container/decorators.js.map +0 -1
- package/esm/features/injectors/ProxyInjector.d.ts +0 -6
- package/esm/features/injectors/ProxyInjector.js.map +0 -1
- package/esm/features/injectors/SimpleInjector.d.ts +0 -6
- package/esm/features/injectors/SimpleInjector.js +0 -6
- package/esm/features/injectors/SimpleInjector.js.map +0 -1
- package/esm/features/instanceHook/IMethodsMetadataCollector.d.ts +0 -4
- package/esm/features/instanceHook/IMethodsMetadataCollector.js +0 -2
- package/esm/features/instanceHook/IMethodsMetadataCollector.js.map +0 -1
- package/esm/features/instanceHook/InstanceHook.js.map +0 -1
- package/esm/features/instanceHook/MethodsMetadataCollector.js.map +0 -1
- package/esm/features/instanceHook/decorators.d.ts +0 -2
- package/esm/features/instanceHook/decorators.js.map +0 -1
- package/esm/features/mock/IMockRepository.d.ts +0 -4
- package/esm/features/mock/IMockRepository.js.map +0 -1
- package/esm/features/mock/MockedServiceLocator.d.ts +0 -13
- package/esm/features/mock/MockedServiceLocator.js.map +0 -1
- package/esm/features/providers/LevelProvider.d.ts +0 -9
- package/esm/features/providers/LevelProvider.js.map +0 -1
- package/esm/features/providers/SingletonProvider.d.ts +0 -11
- package/esm/features/providers/SingletonProvider.js +0 -24
- package/esm/features/providers/SingletonProvider.js.map +0 -1
- package/esm/features/providers/TaggedProvider.d.ts +0 -9
- package/esm/features/providers/TaggedProvider.js.map +0 -1
- package/esm/helpers/types.js.map +0 -1
- package/esm/helpers/utils.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IContainer, IContainerHook, InjectionToken, IProvider, Tag } from '../index';
|
|
2
|
+
import { IMockRepository } from './IMockRepository';
|
|
3
|
+
export declare class AutoMockedContainer implements IContainer {
|
|
4
|
+
private decorated;
|
|
5
|
+
private mockRepository;
|
|
6
|
+
constructor(decorated: IContainer, mockRepository: IMockRepository);
|
|
7
|
+
createScope(tags?: Tag[], parent?: IContainer): IContainer;
|
|
8
|
+
resolve<T>(key: InjectionToken<T>, ...args: any[]): T;
|
|
9
|
+
dispose(): void;
|
|
10
|
+
getProviders(): IProvider<unknown>[];
|
|
11
|
+
register(provider: IProvider<unknown>): this;
|
|
12
|
+
setHook(hook: IContainerHook): this;
|
|
13
|
+
}
|
|
@@ -25,18 +25,18 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
25
25
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
26
|
};
|
|
27
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.
|
|
29
|
-
var index_1 = require("
|
|
30
|
-
var
|
|
31
|
-
function
|
|
28
|
+
exports.AutoMockedContainer = void 0;
|
|
29
|
+
var index_1 = require("../index");
|
|
30
|
+
var AutoMockedContainer = /** @class */ (function () {
|
|
31
|
+
function AutoMockedContainer(decorated, mockRepository) {
|
|
32
32
|
this.decorated = decorated;
|
|
33
33
|
this.mockRepository = mockRepository;
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
AutoMockedContainer.prototype.createScope = function (tags, parent) {
|
|
36
36
|
if (parent === void 0) { parent = this; }
|
|
37
|
-
return new
|
|
37
|
+
return new AutoMockedContainer(this.decorated.createScope(tags, parent), this.mockRepository);
|
|
38
38
|
};
|
|
39
|
-
|
|
39
|
+
AutoMockedContainer.prototype.resolve = function (key) {
|
|
40
40
|
var _a;
|
|
41
41
|
var args = [];
|
|
42
42
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
@@ -52,20 +52,21 @@ var MockedServiceLocator = /** @class */ (function () {
|
|
|
52
52
|
throw e;
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
|
-
|
|
55
|
+
AutoMockedContainer.prototype.dispose = function () {
|
|
56
56
|
this.mockRepository.dispose();
|
|
57
57
|
};
|
|
58
|
-
|
|
59
|
-
return this.decorated.
|
|
58
|
+
AutoMockedContainer.prototype.getProviders = function () {
|
|
59
|
+
return this.decorated.getProviders();
|
|
60
60
|
};
|
|
61
|
-
|
|
62
|
-
this.decorated.register(
|
|
61
|
+
AutoMockedContainer.prototype.register = function (provider) {
|
|
62
|
+
this.decorated.register(provider);
|
|
63
|
+
return this;
|
|
63
64
|
};
|
|
64
|
-
|
|
65
|
+
AutoMockedContainer.prototype.setHook = function (hook) {
|
|
65
66
|
this.decorated.setHook(hook);
|
|
66
67
|
return this;
|
|
67
68
|
};
|
|
68
|
-
return
|
|
69
|
+
return AutoMockedContainer;
|
|
69
70
|
}());
|
|
70
|
-
exports.
|
|
71
|
-
//# sourceMappingURL=
|
|
71
|
+
exports.AutoMockedContainer = AutoMockedContainer;
|
|
72
|
+
//# sourceMappingURL=AutoMockedContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/automock/AutoMockedContainer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kCAA6G;AAG7G;IACI,6BAAoB,SAAqB,EAAU,cAA+B;QAA9D,cAAS,GAAT,SAAS,CAAY;QAAU,mBAAc,GAAd,cAAc,CAAiB;IAAG,CAAC;IAEtF,yCAAW,GAAX,UAAY,IAAY,EAAE,MAAyB;QAAzB,uBAAA,EAAA,aAAyB;QAC/C,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAClG,CAAC;IAED,qCAAO,GAAP,UAAW,GAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC7C,IAAI;YACA,OAAO,CAAA,KAAA,IAAI,CAAC,SAAS,CAAA,CAAC,OAAO,0BAAC,GAAG,UAAK,IAAI,WAAE;SAC/C;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,YAAY,6BAAqB,EAAE;gBACpC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAI,GAAG,CAAC,CAAC;aAC9C;YAED,MAAM,CAAC,CAAC;SACX;IACL,CAAC;IAED,qCAAO,GAAP;QACI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,0CAAY,GAAZ;QACI,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,sCAAQ,GAAR,UAAS,QAA4B;QACjC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,qCAAO,GAAP,UAAQ,IAAoB;QACxB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;IACL,0BAAC;AAAD,CAAC,AApCD,IAoCC;AApCY,kDAAmB"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IMockRepository.js","sourceRoot":"","sources":["../../lib/automock/IMockRepository.ts"],"names":[],"mappings":""}
|
package/cjm/core/IInjector.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { constructor } from '
|
|
2
|
-
import {
|
|
1
|
+
import { constructor } from './utils/types';
|
|
2
|
+
import { IContainer } from './container/IContainer';
|
|
3
3
|
export interface IInjector {
|
|
4
|
-
resolve<T>(
|
|
4
|
+
resolve<T>(container: IContainer, value: constructor<T>, ...deps: any[]): T;
|
|
5
5
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { InjectionToken, IContainer } from './IContainer';
|
|
2
|
+
import { IInjector } from '../IInjector';
|
|
3
|
+
import { IProvider, ScopeOptions, Tag } from '../provider/IProvider';
|
|
4
|
+
import { IContainerHook } from './IContainerHook';
|
|
5
|
+
export declare class Container implements IContainer, ScopeOptions {
|
|
6
|
+
private readonly injector;
|
|
7
|
+
private readonly providers;
|
|
8
|
+
private parent;
|
|
9
|
+
level: number;
|
|
10
|
+
tags: Tag[];
|
|
11
|
+
private hook;
|
|
12
|
+
private isDisposed;
|
|
13
|
+
constructor(injector: IInjector);
|
|
14
|
+
setParent(parent: IContainer): this;
|
|
15
|
+
setTags(tags: Tag[]): this;
|
|
16
|
+
setLevel(level?: number): this;
|
|
17
|
+
setHook(hook: IContainerHook): this;
|
|
18
|
+
register(provider: IProvider<unknown>): this;
|
|
19
|
+
resolve<T>(key: InjectionToken<T>, ...args: any[]): T;
|
|
20
|
+
createScope(tags?: Tag[], parent?: IContainer): Container;
|
|
21
|
+
getProviders(): IProvider<unknown>[];
|
|
22
|
+
dispose(): void;
|
|
23
|
+
map<T extends IContainer>(transform: (l: IContainer) => T): T;
|
|
24
|
+
private validateContainer;
|
|
25
|
+
}
|
|
@@ -36,51 +36,52 @@ var __values = (this && this.__values) || function(o) {
|
|
|
36
36
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
var ProviderRepo_1 = require("
|
|
44
|
-
var
|
|
45
|
-
var
|
|
46
|
-
function
|
|
39
|
+
exports.Container = void 0;
|
|
40
|
+
var IProvider_1 = require("../provider/IProvider");
|
|
41
|
+
var EmptyContainer_1 = require("./EmptyContainer");
|
|
42
|
+
var IContainerHook_1 = require("./IContainerHook");
|
|
43
|
+
var ProviderRepo_1 = require("../provider/ProviderRepo");
|
|
44
|
+
var ContainerDisposedError_1 = require("./ContainerDisposedError");
|
|
45
|
+
var Container = /** @class */ (function () {
|
|
46
|
+
function Container(injector) {
|
|
47
47
|
this.injector = injector;
|
|
48
48
|
this.providers = new ProviderRepo_1.ProviderRepo();
|
|
49
|
-
this.parent = new
|
|
49
|
+
this.parent = new EmptyContainer_1.EmptyContainer();
|
|
50
50
|
this.level = 0;
|
|
51
51
|
this.tags = [];
|
|
52
|
-
this.hook =
|
|
52
|
+
this.hook = IContainerHook_1.emptyHook;
|
|
53
53
|
this.isDisposed = false;
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
Container.prototype.setParent = function (parent) {
|
|
56
56
|
this.parent = parent;
|
|
57
57
|
return this;
|
|
58
58
|
};
|
|
59
|
-
|
|
59
|
+
Container.prototype.setTags = function (tags) {
|
|
60
60
|
this.tags = tags;
|
|
61
61
|
return this;
|
|
62
62
|
};
|
|
63
|
-
|
|
63
|
+
Container.prototype.setLevel = function (level) {
|
|
64
64
|
if (level === void 0) { level = 0; }
|
|
65
65
|
this.level = level;
|
|
66
66
|
return this;
|
|
67
67
|
};
|
|
68
|
-
|
|
68
|
+
Container.prototype.setHook = function (hook) {
|
|
69
69
|
this.hook = hook;
|
|
70
70
|
return this;
|
|
71
71
|
};
|
|
72
|
-
|
|
73
|
-
this.
|
|
74
|
-
this.providers.
|
|
72
|
+
Container.prototype.register = function (provider) {
|
|
73
|
+
this.validateContainer();
|
|
74
|
+
this.providers.add(provider);
|
|
75
|
+
return this;
|
|
75
76
|
};
|
|
76
|
-
|
|
77
|
+
Container.prototype.resolve = function (key) {
|
|
77
78
|
var _a, _b;
|
|
78
79
|
var args = [];
|
|
79
80
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
80
81
|
args[_i - 1] = arguments[_i];
|
|
81
82
|
}
|
|
82
|
-
this.
|
|
83
|
-
if ((0,
|
|
83
|
+
this.validateContainer();
|
|
84
|
+
if ((0, IProvider_1.isProviderKey)(key)) {
|
|
84
85
|
var provider = this.providers.get(key);
|
|
85
86
|
return (provider === null || provider === void 0 ? void 0 : provider.isValid(this))
|
|
86
87
|
? this.hook.resolve(provider.resolve.apply(provider, __spreadArray([this], __read(args), false)))
|
|
@@ -88,22 +89,20 @@ var ServiceLocator = /** @class */ (function () {
|
|
|
88
89
|
}
|
|
89
90
|
return this.hook.resolve((_b = this.injector).resolve.apply(_b, __spreadArray([this, key], __read(args), false)));
|
|
90
91
|
};
|
|
91
|
-
|
|
92
|
+
Container.prototype.createScope = function (tags, parent) {
|
|
92
93
|
var e_1, _a;
|
|
93
94
|
if (tags === void 0) { tags = []; }
|
|
94
95
|
if (parent === void 0) { parent = this; }
|
|
95
|
-
this.
|
|
96
|
-
var scope = new
|
|
96
|
+
this.validateContainer();
|
|
97
|
+
var scope = new Container(this.injector)
|
|
97
98
|
.setParent(parent)
|
|
98
99
|
.setLevel(this.level + 1)
|
|
99
100
|
.setTags(tags)
|
|
100
101
|
.setHook(this.hook.clone());
|
|
101
102
|
try {
|
|
102
|
-
for (var _b = __values(parent.
|
|
103
|
-
var
|
|
104
|
-
|
|
105
|
-
scope.register(key, provider.clone());
|
|
106
|
-
}
|
|
103
|
+
for (var _b = __values(parent.getProviders().filter(function (p) { return p.isValid(scope); })), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
104
|
+
var provider = _c.value;
|
|
105
|
+
scope.register(provider.clone());
|
|
107
106
|
}
|
|
108
107
|
}
|
|
109
108
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
@@ -115,25 +114,23 @@ var ServiceLocator = /** @class */ (function () {
|
|
|
115
114
|
}
|
|
116
115
|
return scope;
|
|
117
116
|
};
|
|
118
|
-
|
|
119
|
-
return
|
|
117
|
+
Container.prototype.getProviders = function () {
|
|
118
|
+
return this.providers.merge(this.parent.getProviders());
|
|
120
119
|
};
|
|
121
|
-
|
|
120
|
+
Container.prototype.dispose = function () {
|
|
122
121
|
this.isDisposed = true;
|
|
123
|
-
this.parent = new
|
|
122
|
+
this.parent = new EmptyContainer_1.EmptyContainer();
|
|
124
123
|
this.providers.dispose();
|
|
125
124
|
this.hook.dispose();
|
|
126
125
|
};
|
|
127
|
-
|
|
126
|
+
Container.prototype.map = function (transform) {
|
|
128
127
|
this.parent = transform(this.parent);
|
|
129
128
|
return transform(this);
|
|
130
129
|
};
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
throw new LocatorDisposedError_1.LocatorDisposedError("Locator is already disposed");
|
|
134
|
-
}
|
|
130
|
+
Container.prototype.validateContainer = function () {
|
|
131
|
+
ContainerDisposedError_1.ContainerDisposedError.assert(!this.isDisposed, 'Container is already disposed');
|
|
135
132
|
};
|
|
136
|
-
return
|
|
133
|
+
return Container;
|
|
137
134
|
}());
|
|
138
|
-
exports.
|
|
139
|
-
//# sourceMappingURL=
|
|
135
|
+
exports.Container = Container;
|
|
136
|
+
//# sourceMappingURL=Container.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/core/container/Container.ts"],"names":[],"mappings":"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"}
|
package/cjm/{errors/NoRegistrationKeysProvided.js → core/container/ContainerDisposedError.js}
RENAMED
|
@@ -15,16 +15,21 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.
|
|
19
|
-
var
|
|
20
|
-
__extends(
|
|
21
|
-
function
|
|
22
|
-
var _this = _super.call(this,
|
|
23
|
-
_this.name = '
|
|
24
|
-
Object.setPrototypeOf(_this,
|
|
18
|
+
exports.ContainerDisposedError = void 0;
|
|
19
|
+
var ContainerDisposedError = /** @class */ (function (_super) {
|
|
20
|
+
__extends(ContainerDisposedError, _super);
|
|
21
|
+
function ContainerDisposedError(message) {
|
|
22
|
+
var _this = _super.call(this, message) || this;
|
|
23
|
+
_this.name = 'ContainerDisposedError';
|
|
24
|
+
Object.setPrototypeOf(_this, ContainerDisposedError.prototype);
|
|
25
25
|
return _this;
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
ContainerDisposedError.assert = function (isTrue, failMessage) {
|
|
28
|
+
if (!isTrue) {
|
|
29
|
+
throw new ContainerDisposedError(failMessage);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
return ContainerDisposedError;
|
|
28
33
|
}(Error));
|
|
29
|
-
exports.
|
|
30
|
-
//# sourceMappingURL=
|
|
34
|
+
exports.ContainerDisposedError = ContainerDisposedError;
|
|
35
|
+
//# sourceMappingURL=ContainerDisposedError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContainerDisposedError.js","sourceRoot":"","sources":["../../../lib/core/container/ContainerDisposedError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;IAA4C,0CAAK;IAQ7C,gCAAY,OAAe;QAA3B,YACI,kBAAM,OAAO,CAAC,SAGjB;QAND,UAAI,GAAG,wBAAwB,CAAC;QAK5B,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;;IAClE,CAAC;IAXM,6BAAM,GAAb,UAAc,MAAe,EAAE,WAAmB;QAC9C,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,IAAI,sBAAsB,CAAC,WAAW,CAAC,CAAC;SACjD;IACL,CAAC;IAQL,6BAAC;AAAD,CAAC,AAbD,CAA4C,KAAK,GAahD;AAbY,wDAAsB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { InjectionToken, IContainer } from './IContainer';
|
|
2
|
+
import { IProvider } from '../provider/IProvider';
|
|
3
|
+
export declare class EmptyContainer implements IContainer {
|
|
4
|
+
createScope(): IContainer;
|
|
5
|
+
dispose(): void;
|
|
6
|
+
register(): this;
|
|
7
|
+
resolve<T>(key: InjectionToken<T>): T;
|
|
8
|
+
getProviders(): IProvider<unknown>[];
|
|
9
|
+
setHook(): this;
|
|
10
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmptyContainer = void 0;
|
|
4
|
+
var MethodNotImplementedError_1 = require("../utils/MethodNotImplementedError");
|
|
5
|
+
var ProviderNotFoundError_1 = require("../provider/ProviderNotFoundError");
|
|
6
|
+
var EmptyContainer = /** @class */ (function () {
|
|
7
|
+
function EmptyContainer() {
|
|
8
|
+
}
|
|
9
|
+
EmptyContainer.prototype.createScope = function () {
|
|
10
|
+
throw new MethodNotImplementedError_1.MethodNotImplementedError();
|
|
11
|
+
};
|
|
12
|
+
EmptyContainer.prototype.dispose = function () {
|
|
13
|
+
throw new MethodNotImplementedError_1.MethodNotImplementedError();
|
|
14
|
+
};
|
|
15
|
+
EmptyContainer.prototype.register = function () {
|
|
16
|
+
return this;
|
|
17
|
+
};
|
|
18
|
+
EmptyContainer.prototype.resolve = function (key) {
|
|
19
|
+
throw new ProviderNotFoundError_1.ProviderNotFoundError("Cannot find " + key.toString());
|
|
20
|
+
};
|
|
21
|
+
EmptyContainer.prototype.getProviders = function () {
|
|
22
|
+
return [];
|
|
23
|
+
};
|
|
24
|
+
EmptyContainer.prototype.setHook = function () {
|
|
25
|
+
throw new MethodNotImplementedError_1.MethodNotImplementedError();
|
|
26
|
+
};
|
|
27
|
+
return EmptyContainer;
|
|
28
|
+
}());
|
|
29
|
+
exports.EmptyContainer = EmptyContainer;
|
|
30
|
+
//# sourceMappingURL=EmptyContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyContainer.js","sourceRoot":"","sources":["../../../lib/core/container/EmptyContainer.ts"],"names":[],"mappings":";;;AACA,gFAA+E;AAC/E,2EAA0E;AAG1E;IAAA;IAwBA,CAAC;IAvBG,oCAAW,GAAX;QACI,MAAM,IAAI,qDAAyB,EAAE,CAAC;IAC1C,CAAC;IAED,gCAAO,GAAP;QACI,MAAM,IAAI,qDAAyB,EAAE,CAAC;IAC1C,CAAC;IAED,iCAAQ,GAAR;QACI,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gCAAO,GAAP,UAAW,GAAsB;QAC7B,MAAM,IAAI,6CAAqB,CAAC,iBAAe,GAAG,CAAC,QAAQ,EAAI,CAAC,CAAC;IACrE,CAAC;IAED,qCAAY,GAAZ;QACI,OAAO,EAAE,CAAC;IACd,CAAC;IAED,gCAAO,GAAP;QACI,MAAM,IAAI,qDAAyB,EAAE,CAAC;IAC1C,CAAC;IACL,qBAAC;AAAD,CAAC,AAxBD,IAwBC;AAxBY,wCAAc"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IProvider, ProviderKey, Tag } from '../provider/IProvider';
|
|
2
|
+
import { constructor, IDisposable } from '../utils/types';
|
|
3
|
+
import { IContainerHook } from './IContainerHook';
|
|
4
|
+
export declare type InjectionToken<T = any> = constructor<T> | ProviderKey;
|
|
5
|
+
export interface Resolveable {
|
|
6
|
+
resolve<T>(key: InjectionToken<T>, ...args: any[]): T;
|
|
7
|
+
}
|
|
8
|
+
export interface IContainer extends IDisposable, Resolveable {
|
|
9
|
+
createScope(tags?: Tag[], parent?: IContainer): IContainer;
|
|
10
|
+
register(provider: IProvider<unknown>): this;
|
|
11
|
+
getProviders(): IProvider<unknown>[];
|
|
12
|
+
setHook(hook: IContainerHook): this;
|
|
13
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IContainer.js","sourceRoot":"","sources":["../../../lib/core/container/IContainer.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.emptyHook = void 0;
|
|
4
|
-
var
|
|
4
|
+
var others_1 = require("../utils/others");
|
|
5
5
|
exports.emptyHook = {
|
|
6
|
-
resolve:
|
|
7
|
-
dispose:
|
|
6
|
+
resolve: others_1.id,
|
|
7
|
+
dispose: others_1.noop,
|
|
8
8
|
clone: function () { return exports.emptyHook; },
|
|
9
9
|
};
|
|
10
|
-
//# sourceMappingURL=
|
|
10
|
+
//# sourceMappingURL=IContainerHook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IContainerHook.js","sourceRoot":"","sources":["../../../lib/core/container/IContainerHook.ts"],"names":[],"mappings":";;;AAAA,0CAA2C;AAS9B,QAAA,SAAS,GAAmB;IACrC,OAAO,EAAE,WAAE;IACX,OAAO,EAAE,aAAI;IACb,KAAK,EAAE,cAAM,OAAA,iBAAS,EAAT,CAAS;CACzB,CAAC"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
import { Resolveable } from '../
|
|
2
|
-
import { IDisposable } from '
|
|
3
|
-
export declare type ResolveDependency<T> = (
|
|
4
|
-
export declare type Tag = string
|
|
1
|
+
import { InjectionToken, Resolveable } from '../container/IContainer';
|
|
2
|
+
import { IDisposable } from '../utils/types';
|
|
3
|
+
export declare type ResolveDependency<T> = (container: Resolveable, ...args: any[]) => T;
|
|
4
|
+
export declare type Tag = string;
|
|
5
5
|
export interface ScopeOptions {
|
|
6
6
|
level: number;
|
|
7
7
|
tags: Tag[];
|
|
8
8
|
}
|
|
9
9
|
export interface IProvider<T> extends IDisposable {
|
|
10
|
+
setKey(key: ProviderKey): void;
|
|
11
|
+
getKeyOrFail(): ProviderKey;
|
|
10
12
|
clone(): IProvider<T>;
|
|
11
|
-
resolve(
|
|
13
|
+
resolve(container: Resolveable, ...args: any[]): T;
|
|
12
14
|
isValid(filters: ScopeOptions): boolean;
|
|
13
15
|
}
|
|
16
|
+
export declare type ProviderKey = string | symbol;
|
|
17
|
+
export declare function isProviderKey<T>(token: InjectionToken<T>): token is ProviderKey;
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isProviderKey = void 0;
|
|
4
|
+
function isProviderKey(token) {
|
|
5
|
+
return ['string', 'symbol'].includes(typeof token);
|
|
6
|
+
}
|
|
7
|
+
exports.isProviderKey = isProviderKey;
|
|
3
8
|
//# sourceMappingURL=IProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../../lib/core/provider/IProvider.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../../lib/core/provider/IProvider.ts"],"names":[],"mappings":";;;AAwBA,SAAgB,aAAa,CAAI,KAAwB;IACrD,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AACvD,CAAC;AAFD,sCAEC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { constructor } from '
|
|
2
|
-
import { ProviderBuilder } from '
|
|
1
|
+
import { constructor } from '../utils/types';
|
|
2
|
+
import { ProviderBuilder } from '../../providers/ProviderBuilder';
|
|
3
3
|
export declare type ProviderReducer<T> = (builder: ProviderBuilder<T>) => ProviderBuilder<T>;
|
|
4
4
|
export interface IProvidersMetadataCollector {
|
|
5
5
|
addReducer<T>(target: constructor<T>, reducer: ProviderReducer<T>): void;
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IProvidersMetadataCollector.js","sourceRoot":"","sources":["../../../lib/core/provider/IProvidersMetadataCollector.ts"],"names":[],"mappings":""}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import { constructor } from '
|
|
2
|
-
import { IProvider, ResolveDependency } from './IProvider';
|
|
3
|
-
import { Resolveable } from '../
|
|
1
|
+
import { constructor } from '../utils/types';
|
|
2
|
+
import { IProvider, ProviderKey, ResolveDependency } from './IProvider';
|
|
3
|
+
import { Resolveable } from '../container/IContainer';
|
|
4
|
+
import { IProvidersMetadataCollector } from './IProvidersMetadataCollector';
|
|
4
5
|
export declare class Provider<T> implements IProvider<T> {
|
|
5
6
|
private readonly resolveDependency;
|
|
6
7
|
static fromClass<T>(value: constructor<T>): Provider<T>;
|
|
7
8
|
static fromValue<T>(value: T): Provider<T>;
|
|
9
|
+
private key?;
|
|
8
10
|
constructor(resolveDependency: ResolveDependency<T>);
|
|
11
|
+
setKey(key: ProviderKey): void;
|
|
9
12
|
clone(): Provider<T>;
|
|
10
|
-
resolve(
|
|
13
|
+
resolve(container: Resolveable, ...args: any[]): T;
|
|
11
14
|
dispose(): void;
|
|
12
15
|
isValid(): boolean;
|
|
16
|
+
getKeyOrFail(): ProviderKey;
|
|
13
17
|
}
|
|
18
|
+
export declare const createAddKeyDecorator: (metadataCollector: IProvidersMetadataCollector) => (key: ProviderKey) => ClassDecorator;
|
|
@@ -25,7 +25,8 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
25
25
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
26
|
};
|
|
27
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.Provider = void 0;
|
|
28
|
+
exports.createAddKeyDecorator = exports.Provider = void 0;
|
|
29
|
+
var ProviderHasNoKeyError_1 = require("./ProviderHasNoKeyError");
|
|
29
30
|
var Provider = /** @class */ (function () {
|
|
30
31
|
function Provider(resolveDependency) {
|
|
31
32
|
this.resolveDependency = resolveDependency;
|
|
@@ -42,21 +43,44 @@ var Provider = /** @class */ (function () {
|
|
|
42
43
|
Provider.fromValue = function (value) {
|
|
43
44
|
return new Provider(function () { return value; });
|
|
44
45
|
};
|
|
46
|
+
Provider.prototype.setKey = function (key) {
|
|
47
|
+
this.key = key;
|
|
48
|
+
};
|
|
45
49
|
Provider.prototype.clone = function () {
|
|
46
|
-
|
|
50
|
+
var provider = new Provider(this.resolveDependency);
|
|
51
|
+
if (this.key) {
|
|
52
|
+
provider.setKey(this.key);
|
|
53
|
+
}
|
|
54
|
+
return provider;
|
|
47
55
|
};
|
|
48
|
-
Provider.prototype.resolve = function (
|
|
56
|
+
Provider.prototype.resolve = function (container) {
|
|
49
57
|
var args = [];
|
|
50
58
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
51
59
|
args[_i - 1] = arguments[_i];
|
|
52
60
|
}
|
|
53
|
-
return this.resolveDependency.apply(this, __spreadArray([
|
|
61
|
+
return this.resolveDependency.apply(this, __spreadArray([container], __read(args), false));
|
|
54
62
|
};
|
|
55
63
|
Provider.prototype.dispose = function () { };
|
|
56
64
|
Provider.prototype.isValid = function () {
|
|
57
65
|
return true;
|
|
58
66
|
};
|
|
67
|
+
Provider.prototype.getKeyOrFail = function () {
|
|
68
|
+
if (!this.key) {
|
|
69
|
+
throw new ProviderHasNoKeyError_1.ProviderHasNoKeyError('Pls provide registration keys for current provider');
|
|
70
|
+
}
|
|
71
|
+
return this.key;
|
|
72
|
+
};
|
|
59
73
|
return Provider;
|
|
60
74
|
}());
|
|
61
75
|
exports.Provider = Provider;
|
|
76
|
+
var createAddKeyDecorator = function (metadataCollector) {
|
|
77
|
+
return function (key) {
|
|
78
|
+
return function (target) {
|
|
79
|
+
var targetClass = target;
|
|
80
|
+
var fn = metadataCollector.findReducerOrCreate(targetClass);
|
|
81
|
+
metadataCollector.addReducer(targetClass, function (builder) { return fn(builder).forKey(key); });
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
exports.createAddKeyDecorator = createAddKeyDecorator;
|
|
62
86
|
//# sourceMappingURL=Provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../lib/core/provider/Provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../lib/core/provider/Provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iEAAgE;AAGhE;IAWI,kBAA6B,iBAAuC;QAAvC,sBAAiB,GAAjB,iBAAiB,CAAsB;IAAG,CAAC;IAVjE,kBAAS,GAAhB,UAAoB,KAAqB;QACrC,OAAO,IAAI,QAAQ,CAAC,UAAC,CAAC;YAAE,cAAO;iBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;gBAAP,6BAAO;;YAAK,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAS,KAAK,UAAK,IAAI;QAAxB,CAAyB,CAAC,CAAC;IACnE,CAAC;IAEM,kBAAS,GAAhB,UAAoB,KAAQ;QACxB,OAAO,IAAI,QAAQ,CAAC,cAAM,OAAA,KAAK,EAAL,CAAK,CAAC,CAAC;IACrC,CAAC;IAMD,yBAAM,GAAN,UAAO,GAAgB;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAED,wBAAK,GAAL;QACI,IAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,GAAG,EAAE;YACV,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,0BAAO,GAAP,UAAQ,SAAsB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC1C,OAAO,IAAI,CAAC,iBAAiB,OAAtB,IAAI,iBAAmB,SAAS,UAAK,IAAI,WAAE;IACtD,CAAC;IAED,0BAAO,GAAP,cAAiB,CAAC;IAElB,0BAAO,GAAP;QACI,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+BAAY,GAAZ;QACI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,MAAM,IAAI,6CAAqB,CAAC,oDAAoD,CAAC,CAAC;SACzF;QACD,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IACL,eAAC;AAAD,CAAC,AAzCD,IAyCC;AAzCY,4BAAQ;AA2Cd,IAAM,qBAAqB,GAC9B,UAAC,iBAA8C;IAC/C,OAAA,UAAC,GAAgB;QACjB,OAAA,UAAC,MAAM;YACH,IAAM,WAAW,GAAG,MAAqC,CAAC;YAC1D,IAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAvB,CAAuB,CAAC,CAAC;QACpF,CAAC;IAJD,CAIC;AALD,CAKC,CAAC;AAPO,QAAA,qBAAqB,yBAO5B"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { Resolveable } from '../
|
|
2
|
-
import { IProvider, ScopeOptions } from './IProvider';
|
|
1
|
+
import { Resolveable } from '../container/IContainer';
|
|
2
|
+
import { IProvider, ProviderKey, ScopeOptions } from './IProvider';
|
|
3
3
|
export declare abstract class ProviderDecorator<T> implements IProvider<T> {
|
|
4
4
|
private decorated;
|
|
5
|
-
constructor(decorated: IProvider<T>);
|
|
5
|
+
protected constructor(decorated: IProvider<T>);
|
|
6
6
|
clone(): IProvider<T>;
|
|
7
7
|
dispose(): void;
|
|
8
8
|
isValid(filters: ScopeOptions): boolean;
|
|
9
|
-
resolve(
|
|
9
|
+
resolve(container: Resolveable, ...args: any[]): T;
|
|
10
|
+
getKeyOrFail(): ProviderKey;
|
|
11
|
+
setKey(key: ProviderKey): void;
|
|
10
12
|
}
|
|
@@ -39,13 +39,19 @@ var ProviderDecorator = /** @class */ (function () {
|
|
|
39
39
|
ProviderDecorator.prototype.isValid = function (filters) {
|
|
40
40
|
return this.decorated.isValid(filters);
|
|
41
41
|
};
|
|
42
|
-
ProviderDecorator.prototype.resolve = function (
|
|
42
|
+
ProviderDecorator.prototype.resolve = function (container) {
|
|
43
43
|
var _a;
|
|
44
44
|
var args = [];
|
|
45
45
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
46
46
|
args[_i - 1] = arguments[_i];
|
|
47
47
|
}
|
|
48
|
-
return (_a = this.decorated).resolve.apply(_a, __spreadArray([
|
|
48
|
+
return (_a = this.decorated).resolve.apply(_a, __spreadArray([container], __read(args), false));
|
|
49
|
+
};
|
|
50
|
+
ProviderDecorator.prototype.getKeyOrFail = function () {
|
|
51
|
+
return this.decorated.getKeyOrFail();
|
|
52
|
+
};
|
|
53
|
+
ProviderDecorator.prototype.setKey = function (key) {
|
|
54
|
+
this.decorated.setKey(key);
|
|
49
55
|
};
|
|
50
56
|
return ProviderDecorator;
|
|
51
57
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderDecorator.js","sourceRoot":"","sources":["../../../lib/core/provider/ProviderDecorator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;IACI,
|
|
1
|
+
{"version":3,"file":"ProviderDecorator.js","sourceRoot":"","sources":["../../../lib/core/provider/ProviderDecorator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;IACI,2BAA8B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAEzD,iCAAK,GAAL;QACI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,mCAAO,GAAP;QACI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,mCAAO,GAAP,UAAQ,OAAqB;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,mCAAO,GAAP,UAAQ,SAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC1C,OAAO,CAAA,KAAA,IAAI,CAAC,SAAS,CAAA,CAAC,OAAO,0BAAC,SAAS,UAAK,IAAI,WAAE;IACtD,CAAC;IAED,wCAAY,GAAZ;QACI,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,kCAAM,GAAN,UAAO,GAAgB;QACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IACL,wBAAC;AAAD,CAAC,AA1BD,IA0BC;AA1BqB,8CAAiB"}
|