@tsed/di 8.11.1 → 8.11.2-rc.1
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/lib/esm/common/constants/constants.js +0 -1
- package/lib/esm/common/decorators/autoInjectable.js +0 -1
- package/lib/esm/common/decorators/configuration.js +0 -1
- package/lib/esm/common/decorators/constant.js +0 -1
- package/lib/esm/common/decorators/controller.js +0 -1
- package/lib/esm/common/decorators/inject.js +0 -1
- package/lib/esm/common/decorators/injectable.js +0 -1
- package/lib/esm/common/decorators/intercept.js +0 -1
- package/lib/esm/common/decorators/interceptor.js +0 -1
- package/lib/esm/common/decorators/lazyInject.js +0 -1
- package/lib/esm/common/decorators/module.js +0 -1
- package/lib/esm/common/decorators/opts.js +0 -1
- package/lib/esm/common/decorators/overrideProvider.js +0 -1
- package/lib/esm/common/decorators/scope.js +0 -1
- package/lib/esm/common/decorators/service.js +0 -1
- package/lib/esm/common/decorators/useOpts.js +0 -1
- package/lib/esm/common/decorators/value.js +0 -1
- package/lib/esm/common/domain/Container.js +0 -1
- package/lib/esm/common/domain/ControllerProvider.js +0 -1
- package/lib/esm/common/domain/InjectablePropertyType.js +0 -1
- package/lib/esm/common/domain/LocalsContainer.js +0 -1
- package/lib/esm/common/domain/Provider.js +0 -1
- package/lib/esm/common/domain/ProviderScope.js +0 -1
- package/lib/esm/common/domain/ProviderType.js +0 -1
- package/lib/esm/common/errors/InjectionError.js +0 -1
- package/lib/esm/common/errors/InvalidPropertyTokenError.js +0 -1
- package/lib/esm/common/fn/configuration.js +0 -1
- package/lib/esm/common/fn/constant.js +0 -1
- package/lib/esm/common/fn/inject.js +0 -1
- package/lib/esm/common/fn/injectMany.js +0 -1
- package/lib/esm/common/fn/injectable.js +0 -1
- package/lib/esm/common/fn/injector.js +0 -1
- package/lib/esm/common/fn/lazyInject.js +0 -1
- package/lib/esm/common/fn/localsContainer.js +0 -1
- package/lib/esm/common/fn/logger.js +0 -1
- package/lib/esm/common/fn/refValue.js +0 -1
- package/lib/esm/common/index.js +0 -1
- package/lib/esm/common/interfaces/DIConfigurationOptions.js +0 -1
- package/lib/esm/common/interfaces/DILogger.js +0 -1
- package/lib/esm/common/interfaces/DILoggerOptions.js +0 -1
- package/lib/esm/common/interfaces/ImportTokenProviderOpts.js +0 -1
- package/lib/esm/common/interfaces/InterceptorContext.js +0 -1
- package/lib/esm/common/interfaces/InterceptorMethods.js +0 -1
- package/lib/esm/common/interfaces/InvokeOptions.js +0 -1
- package/lib/esm/common/interfaces/OnDestroy.js +0 -1
- package/lib/esm/common/interfaces/OnInit.js +0 -1
- package/lib/esm/common/interfaces/ProviderOpts.js +0 -1
- package/lib/esm/common/interfaces/RegistrySettings.js +0 -1
- package/lib/esm/common/interfaces/ResolvedInvokeOptions.js +0 -1
- package/lib/esm/common/interfaces/TokenProvider.js +0 -1
- package/lib/esm/common/interfaces/TokenRoute.js +0 -1
- package/lib/esm/common/registries/GlobalProviders.js +0 -1
- package/lib/esm/common/registries/ProviderRegistry.js +0 -1
- package/lib/esm/common/services/DIConfiguration.js +0 -1
- package/lib/esm/common/services/DILogger.js +0 -1
- package/lib/esm/common/services/InjectorService.js +0 -1
- package/lib/esm/common/utils/colors.js +0 -1
- package/lib/esm/common/utils/createContainer.js +0 -1
- package/lib/esm/common/utils/discoverHooks.js +0 -1
- package/lib/esm/common/utils/getConfiguration.js +0 -1
- package/lib/esm/common/utils/getConstructorDependencies.js +0 -1
- package/lib/esm/common/utils/providerBuilder.js +0 -1
- package/lib/esm/index.js +0 -1
- package/lib/esm/node/decorators/injectContext.js +0 -1
- package/lib/esm/node/domain/ContextLogger.js +0 -1
- package/lib/esm/node/domain/DIContext.js +0 -1
- package/lib/esm/node/fn/context.js +0 -1
- package/lib/esm/node/fn/contextLogger.js +0 -1
- package/lib/esm/node/index.js +0 -1
- package/lib/esm/node/interfaces/AlterRunInContext.js +0 -1
- package/lib/esm/node/services/DILogger.js +0 -1
- package/lib/esm/node/services/DITest.js +0 -1
- package/lib/esm/node/utils/asyncHookContext.js +0 -1
- package/lib/esm/node/utils/attachLogger.js +0 -1
- package/lib/esm/node/utils/setLoggerConfiguration.js +0 -1
- package/lib/esm/node/utils/setLoggerFormat.js +0 -1
- package/lib/esm/node/utils/setLoggerLevel.js +0 -1
- package/package.json +12 -10
- package/.barrelsby.json +0 -5
- package/lib/browser/chunks/injectable.js +0 -65
- package/lib/browser/chunks/injectable.js.map +0 -1
- package/lib/browser/common/constants/constants.js +0 -9
- package/lib/browser/common/constants/constants.js.map +0 -1
- package/lib/browser/common/decorators/autoInjectable.js +0 -26
- package/lib/browser/common/decorators/autoInjectable.js.map +0 -1
- package/lib/browser/common/decorators/configuration.js +0 -24
- package/lib/browser/common/decorators/configuration.js.map +0 -1
- package/lib/browser/common/decorators/constant.js +0 -27
- package/lib/browser/common/decorators/constant.js.map +0 -1
- package/lib/browser/common/decorators/controller.js +0 -23
- package/lib/browser/common/decorators/controller.js.map +0 -1
- package/lib/browser/common/decorators/inject.js +0 -62
- package/lib/browser/common/decorators/inject.js.map +0 -1
- package/lib/browser/common/decorators/injectable.js +0 -14
- package/lib/browser/common/decorators/injectable.js.map +0 -1
- package/lib/browser/common/decorators/intercept.js +0 -57
- package/lib/browser/common/decorators/intercept.js.map +0 -1
- package/lib/browser/common/decorators/interceptor.js +0 -11
- package/lib/browser/common/decorators/interceptor.js.map +0 -1
- package/lib/browser/common/decorators/lazyInject.js +0 -43
- package/lib/browser/common/decorators/lazyInject.js.map +0 -1
- package/lib/browser/common/decorators/module.js +0 -22
- package/lib/browser/common/decorators/module.js.map +0 -1
- package/lib/browser/common/decorators/opts.js +0 -12
- package/lib/browser/common/decorators/opts.js.map +0 -1
- package/lib/browser/common/decorators/overrideProvider.js +0 -10
- package/lib/browser/common/decorators/overrideProvider.js.map +0 -1
- package/lib/browser/common/decorators/scope.js +0 -9
- package/lib/browser/common/decorators/scope.js.map +0 -1
- package/lib/browser/common/decorators/service.js +0 -8
- package/lib/browser/common/decorators/service.js.map +0 -1
- package/lib/browser/common/decorators/useOpts.js +0 -23
- package/lib/browser/common/decorators/useOpts.js.map +0 -1
- package/lib/browser/common/decorators/value.js +0 -23
- package/lib/browser/common/decorators/value.js.map +0 -1
- package/lib/browser/common/domain/Container.js +0 -64
- package/lib/browser/common/domain/Container.js.map +0 -1
- package/lib/browser/common/domain/ControllerProvider.js +0 -35
- package/lib/browser/common/domain/ControllerProvider.js.map +0 -1
- package/lib/browser/common/domain/InjectablePropertyType.js +0 -5
- package/lib/browser/common/domain/InjectablePropertyType.js.map +0 -1
- package/lib/browser/common/domain/LocalsContainer.js +0 -13
- package/lib/browser/common/domain/LocalsContainer.js.map +0 -1
- package/lib/browser/common/domain/Provider.js +0 -144
- package/lib/browser/common/domain/Provider.js.map +0 -1
- package/lib/browser/common/domain/ProviderScope.js +0 -5
- package/lib/browser/common/domain/ProviderScope.js.map +0 -1
- package/lib/browser/common/domain/ProviderType.js +0 -5
- package/lib/browser/common/domain/ProviderType.js.map +0 -1
- package/lib/browser/common/errors/InjectionError.js +0 -31
- package/lib/browser/common/errors/InjectionError.js.map +0 -1
- package/lib/browser/common/errors/InvalidPropertyTokenError.js +0 -17
- package/lib/browser/common/errors/InvalidPropertyTokenError.js.map +0 -1
- package/lib/browser/common/fn/configuration.js +0 -13
- package/lib/browser/common/fn/configuration.js.map +0 -1
- package/lib/browser/common/fn/constant.js +0 -8
- package/lib/browser/common/fn/constant.js.map +0 -1
- package/lib/browser/common/fn/inject.js +0 -13
- package/lib/browser/common/fn/inject.js.map +0 -1
- package/lib/browser/common/fn/injectMany.js +0 -9
- package/lib/browser/common/fn/injectMany.js.map +0 -1
- package/lib/browser/common/fn/injectable.js +0 -8
- package/lib/browser/common/fn/injectable.js.map +0 -1
- package/lib/browser/common/fn/injector.js +0 -13
- package/lib/browser/common/fn/injector.js.map +0 -1
- package/lib/browser/common/fn/lazyInject.js +0 -23
- package/lib/browser/common/fn/lazyInject.js.map +0 -1
- package/lib/browser/common/fn/localsContainer.js +0 -29
- package/lib/browser/common/fn/localsContainer.js.map +0 -1
- package/lib/browser/common/fn/logger.js +0 -8
- package/lib/browser/common/fn/logger.js.map +0 -1
- package/lib/browser/common/fn/refValue.js +0 -15
- package/lib/browser/common/fn/refValue.js.map +0 -1
- package/lib/browser/common/index.js +0 -115
- package/lib/browser/common/index.js.map +0 -1
- package/lib/browser/common/registries/GlobalProviders.js +0 -102
- package/lib/browser/common/registries/GlobalProviders.js.map +0 -1
- package/lib/browser/common/registries/ProviderRegistry.js +0 -8
- package/lib/browser/common/registries/ProviderRegistry.js.map +0 -1
- package/lib/browser/common/services/DIConfiguration.js +0 -99
- package/lib/browser/common/services/DIConfiguration.js.map +0 -1
- package/lib/browser/common/services/DILogger.js +0 -8
- package/lib/browser/common/services/DILogger.js.map +0 -1
- package/lib/browser/common/services/InjectorService.js +0 -378
- package/lib/browser/common/services/InjectorService.js.map +0 -1
- package/lib/browser/common/utils/colors.js +0 -5
- package/lib/browser/common/utils/colors.js.map +0 -1
- package/lib/browser/common/utils/createContainer.js +0 -10
- package/lib/browser/common/utils/createContainer.js.map +0 -1
- package/lib/browser/common/utils/discoverHooks.js +0 -17
- package/lib/browser/common/utils/discoverHooks.js.map +0 -1
- package/lib/browser/common/utils/getConfiguration.js +0 -20
- package/lib/browser/common/utils/getConfiguration.js.map +0 -1
- package/lib/browser/common/utils/getConstructorDependencies.js +0 -12
- package/lib/browser/common/utils/getConstructorDependencies.js.map +0 -1
- package/lib/browser/common/utils/providerBuilder.js +0 -8
- package/lib/browser/common/utils/providerBuilder.js.map +0 -1
- package/lib/esm/common/constants/constants.js.map +0 -1
- package/lib/esm/common/decorators/autoInjectable.js.map +0 -1
- package/lib/esm/common/decorators/configuration.js.map +0 -1
- package/lib/esm/common/decorators/constant.js.map +0 -1
- package/lib/esm/common/decorators/controller.js.map +0 -1
- package/lib/esm/common/decorators/inject.js.map +0 -1
- package/lib/esm/common/decorators/injectable.js.map +0 -1
- package/lib/esm/common/decorators/intercept.js.map +0 -1
- package/lib/esm/common/decorators/interceptor.js.map +0 -1
- package/lib/esm/common/decorators/lazyInject.js.map +0 -1
- package/lib/esm/common/decorators/module.js.map +0 -1
- package/lib/esm/common/decorators/opts.js.map +0 -1
- package/lib/esm/common/decorators/overrideProvider.js.map +0 -1
- package/lib/esm/common/decorators/scope.js.map +0 -1
- package/lib/esm/common/decorators/service.js.map +0 -1
- package/lib/esm/common/decorators/useOpts.js.map +0 -1
- package/lib/esm/common/decorators/value.js.map +0 -1
- package/lib/esm/common/domain/Container.js.map +0 -1
- package/lib/esm/common/domain/ControllerProvider.js.map +0 -1
- package/lib/esm/common/domain/InjectablePropertyType.js.map +0 -1
- package/lib/esm/common/domain/LocalsContainer.js.map +0 -1
- package/lib/esm/common/domain/Provider.js.map +0 -1
- package/lib/esm/common/domain/ProviderScope.js.map +0 -1
- package/lib/esm/common/domain/ProviderType.js.map +0 -1
- package/lib/esm/common/errors/InjectionError.js.map +0 -1
- package/lib/esm/common/errors/InvalidPropertyTokenError.js.map +0 -1
- package/lib/esm/common/fn/configuration.js.map +0 -1
- package/lib/esm/common/fn/constant.js.map +0 -1
- package/lib/esm/common/fn/inject.js.map +0 -1
- package/lib/esm/common/fn/injectMany.js.map +0 -1
- package/lib/esm/common/fn/injectable.js.map +0 -1
- package/lib/esm/common/fn/injector.js.map +0 -1
- package/lib/esm/common/fn/lazyInject.js.map +0 -1
- package/lib/esm/common/fn/localsContainer.js.map +0 -1
- package/lib/esm/common/fn/logger.js.map +0 -1
- package/lib/esm/common/fn/refValue.js.map +0 -1
- package/lib/esm/common/index.js.map +0 -1
- package/lib/esm/common/interfaces/DIConfigurationOptions.js.map +0 -1
- package/lib/esm/common/interfaces/DILogger.js.map +0 -1
- package/lib/esm/common/interfaces/DILoggerOptions.js.map +0 -1
- package/lib/esm/common/interfaces/ImportTokenProviderOpts.js.map +0 -1
- package/lib/esm/common/interfaces/InterceptorContext.js.map +0 -1
- package/lib/esm/common/interfaces/InterceptorMethods.js.map +0 -1
- package/lib/esm/common/interfaces/InvokeOptions.js.map +0 -1
- package/lib/esm/common/interfaces/OnDestroy.js.map +0 -1
- package/lib/esm/common/interfaces/OnInit.js.map +0 -1
- package/lib/esm/common/interfaces/ProviderOpts.js.map +0 -1
- package/lib/esm/common/interfaces/RegistrySettings.js.map +0 -1
- package/lib/esm/common/interfaces/ResolvedInvokeOptions.js.map +0 -1
- package/lib/esm/common/interfaces/TokenProvider.js.map +0 -1
- package/lib/esm/common/interfaces/TokenRoute.js.map +0 -1
- package/lib/esm/common/registries/GlobalProviders.js.map +0 -1
- package/lib/esm/common/registries/ProviderRegistry.js.map +0 -1
- package/lib/esm/common/services/DIConfiguration.js.map +0 -1
- package/lib/esm/common/services/DILogger.js.map +0 -1
- package/lib/esm/common/services/InjectorService.js.map +0 -1
- package/lib/esm/common/utils/colors.js.map +0 -1
- package/lib/esm/common/utils/createContainer.js.map +0 -1
- package/lib/esm/common/utils/discoverHooks.js.map +0 -1
- package/lib/esm/common/utils/getConfiguration.js.map +0 -1
- package/lib/esm/common/utils/getConstructorDependencies.js.map +0 -1
- package/lib/esm/common/utils/providerBuilder.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/node/decorators/injectContext.js.map +0 -1
- package/lib/esm/node/domain/ContextLogger.js.map +0 -1
- package/lib/esm/node/domain/DIContext.js.map +0 -1
- package/lib/esm/node/fn/context.js.map +0 -1
- package/lib/esm/node/fn/contextLogger.js.map +0 -1
- package/lib/esm/node/index.js.map +0 -1
- package/lib/esm/node/interfaces/AlterRunInContext.js.map +0 -1
- package/lib/esm/node/services/DILogger.js.map +0 -1
- package/lib/esm/node/services/DITest.js.map +0 -1
- package/lib/esm/node/utils/asyncHookContext.js.map +0 -1
- package/lib/esm/node/utils/attachLogger.js.map +0 -1
- package/lib/esm/node/utils/setLoggerConfiguration.js.map +0 -1
- package/lib/esm/node/utils/setLoggerFormat.js.map +0 -1
- package/lib/esm/node/utils/setLoggerLevel.js.map +0 -1
- package/src/common/constants/constants.ts +0 -5
- package/src/common/decorators/autoInjectable.spec.ts +0 -135
- package/src/common/decorators/autoInjectable.ts +0 -60
- package/src/common/decorators/configuration.spec.ts +0 -45
- package/src/common/decorators/configuration.ts +0 -36
- package/src/common/decorators/constant.spec.ts +0 -67
- package/src/common/decorators/constant.ts +0 -73
- package/src/common/decorators/controller.spec.ts +0 -43
- package/src/common/decorators/controller.ts +0 -73
- package/src/common/decorators/inject.spec.ts +0 -298
- package/src/common/decorators/inject.ts +0 -150
- package/src/common/decorators/injectable.spec.ts +0 -43
- package/src/common/decorators/injectable.ts +0 -30
- package/src/common/decorators/intercept.spec.ts +0 -150
- package/src/common/decorators/intercept.ts +0 -89
- package/src/common/decorators/interceptor.ts +0 -17
- package/src/common/decorators/lazyInject.spec.ts +0 -53
- package/src/common/decorators/lazyInject.ts +0 -92
- package/src/common/decorators/module.ts +0 -52
- package/src/common/decorators/opts.ts +0 -51
- package/src/common/decorators/overrideProvider.spec.ts +0 -30
- package/src/common/decorators/overrideProvider.ts +0 -15
- package/src/common/decorators/scope.spec.ts +0 -25
- package/src/common/decorators/scope.ts +0 -13
- package/src/common/decorators/service.ts +0 -14
- package/src/common/decorators/useOpts.spec.ts +0 -90
- package/src/common/decorators/useOpts.ts +0 -64
- package/src/common/decorators/value.spec.ts +0 -59
- package/src/common/decorators/value.ts +0 -60
- package/src/common/domain/Container.spec.ts +0 -85
- package/src/common/domain/Container.ts +0 -80
- package/src/common/domain/ControllerProvider.spec.ts +0 -55
- package/src/common/domain/ControllerProvider.ts +0 -48
- package/src/common/domain/InjectablePropertyType.ts +0 -7
- package/src/common/domain/LocalsContainer.spec.ts +0 -20
- package/src/common/domain/LocalsContainer.ts +0 -11
- package/src/common/domain/Provider.spec.ts +0 -107
- package/src/common/domain/Provider.ts +0 -218
- package/src/common/domain/ProviderScope.ts +0 -5
- package/src/common/domain/ProviderType.ts +0 -8
- package/src/common/errors/InjectionError.spec.ts +0 -17
- package/src/common/errors/InjectionError.ts +0 -71
- package/src/common/errors/InvalidPropertyTokenError.ts +0 -14
- package/src/common/fn/configuration.spec.ts +0 -42
- package/src/common/fn/configuration.ts +0 -22
- package/src/common/fn/constant.spec.ts +0 -37
- package/src/common/fn/constant.ts +0 -7
- package/src/common/fn/inject.spec.ts +0 -54
- package/src/common/fn/inject.ts +0 -32
- package/src/common/fn/injectMany.ts +0 -16
- package/src/common/fn/injectable.spec.ts +0 -88
- package/src/common/fn/injectable.ts +0 -15
- package/src/common/fn/injector.ts +0 -26
- package/src/common/fn/lazyInject.spec.ts +0 -22
- package/src/common/fn/lazyInject.ts +0 -36
- package/src/common/fn/localsContainer.ts +0 -55
- package/src/common/fn/logger.ts +0 -8
- package/src/common/fn/refValue.spec.ts +0 -47
- package/src/common/fn/refValue.ts +0 -33
- package/src/common/index.ts +0 -64
- package/src/common/integration/async-factory.spec.ts +0 -60
- package/src/common/integration/di.spec.ts +0 -153
- package/src/common/integration/imports.spec.ts +0 -39
- package/src/common/integration/request.spec.ts +0 -79
- package/src/common/integration/singleton.spec.ts +0 -125
- package/src/common/interfaces/DIConfigurationOptions.ts +0 -29
- package/src/common/interfaces/DILogger.ts +0 -13
- package/src/common/interfaces/DILoggerOptions.ts +0 -54
- package/src/common/interfaces/ImportTokenProviderOpts.ts +0 -29
- package/src/common/interfaces/InterceptorContext.ts +0 -13
- package/src/common/interfaces/InterceptorMethods.ts +0 -5
- package/src/common/interfaces/InvokeOptions.ts +0 -28
- package/src/common/interfaces/OnDestroy.ts +0 -3
- package/src/common/interfaces/OnInit.ts +0 -3
- package/src/common/interfaces/ProviderOpts.ts +0 -57
- package/src/common/interfaces/RegistrySettings.ts +0 -11
- package/src/common/interfaces/ResolvedInvokeOptions.ts +0 -14
- package/src/common/interfaces/TokenProvider.ts +0 -8
- package/src/common/interfaces/TokenRoute.ts +0 -6
- package/src/common/registries/GlobalProviders.spec.ts +0 -94
- package/src/common/registries/GlobalProviders.ts +0 -132
- package/src/common/registries/ProviderRegistry.spec.ts +0 -36
- package/src/common/registries/ProviderRegistry.ts +0 -32
- package/src/common/services/DIConfiguration.spec.ts +0 -60
- package/src/common/services/DIConfiguration.ts +0 -142
- package/src/common/services/DILogger.spec.ts +0 -22
- package/src/common/services/DILogger.ts +0 -8
- package/src/common/services/InjectorService.spec.ts +0 -793
- package/src/common/services/InjectorService.ts +0 -612
- package/src/common/utils/colors.spec.ts +0 -9
- package/src/common/utils/colors.ts +0 -11
- package/src/common/utils/createContainer.spec.ts +0 -18
- package/src/common/utils/createContainer.ts +0 -14
- package/src/common/utils/discoverHooks.ts +0 -16
- package/src/common/utils/getConfiguration.spec.ts +0 -40
- package/src/common/utils/getConfiguration.ts +0 -21
- package/src/common/utils/getConstructorDependencies.ts +0 -9
- package/src/common/utils/providerBuilder.ts +0 -95
- package/src/index.ts +0 -2
- package/src/node/decorators/injectContext.spec.ts +0 -60
- package/src/node/decorators/injectContext.ts +0 -29
- package/src/node/domain/ContextLogger.spec.ts +0 -400
- package/src/node/domain/ContextLogger.ts +0 -155
- package/src/node/domain/DIContext.spec.ts +0 -105
- package/src/node/domain/DIContext.ts +0 -115
- package/src/node/fn/context.ts +0 -24
- package/src/node/fn/contextLogger.spec.ts +0 -47
- package/src/node/fn/contextLogger.ts +0 -9
- package/src/node/index.ts +0 -16
- package/src/node/integration/async-factory-invoke.spec.ts +0 -58
- package/src/node/integration/inject-context.spec.ts +0 -29
- package/src/node/integration/invoke-oninit.spec.ts +0 -25
- package/src/node/interfaces/AlterRunInContext.ts +0 -3
- package/src/node/services/DILogger.spec.ts +0 -24
- package/src/node/services/DILogger.ts +0 -6
- package/src/node/services/DITest.spec.ts +0 -109
- package/src/node/services/DITest.ts +0 -122
- package/src/node/utils/asyncHookContext.spec.ts +0 -147
- package/src/node/utils/asyncHookContext.ts +0 -48
- package/src/node/utils/attachLogger.spec.ts +0 -14
- package/src/node/utils/attachLogger.ts +0 -7
- package/src/node/utils/setLoggerConfiguration.spec.ts +0 -43
- package/src/node/utils/setLoggerConfiguration.ts +0 -7
- package/src/node/utils/setLoggerFormat.ts +0 -33
- package/src/node/utils/setLoggerLevel.ts +0 -12
- package/vite.config.mts +0 -45
- package/vitest.config.mts +0 -21
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import {DITest} from "../../node/index.js";
|
|
2
|
-
import {Injectable} from "../decorators/injectable.js";
|
|
3
|
-
import {InjectorService} from "../services/InjectorService.js";
|
|
4
|
-
import {inject} from "./inject.js";
|
|
5
|
-
|
|
6
|
-
@Injectable()
|
|
7
|
-
class ProvidersList extends Map<string, string> {}
|
|
8
|
-
|
|
9
|
-
@Injectable()
|
|
10
|
-
class MyService {
|
|
11
|
-
readonly providersList = inject(ProvidersList);
|
|
12
|
-
|
|
13
|
-
getValue() {
|
|
14
|
-
return this.providersList.get("key");
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
describe("inject()", () => {
|
|
19
|
-
beforeEach(() => DITest.create());
|
|
20
|
-
afterEach(() => DITest.reset());
|
|
21
|
-
|
|
22
|
-
it("should inject the expected provider", async () => {
|
|
23
|
-
class Nested {}
|
|
24
|
-
|
|
25
|
-
class Test {
|
|
26
|
-
readonly injector = inject(InjectorService);
|
|
27
|
-
readonly nested = inject(Nested);
|
|
28
|
-
|
|
29
|
-
constructor() {
|
|
30
|
-
expect(this.injector).toBeInstanceOf(InjectorService);
|
|
31
|
-
expect(this.nested).not.toBeInstanceOf(Nested);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
await DITest.invoke(Test, [
|
|
36
|
-
{
|
|
37
|
-
token: Nested,
|
|
38
|
-
use: {}
|
|
39
|
-
}
|
|
40
|
-
]);
|
|
41
|
-
});
|
|
42
|
-
it("should rebuild all dependencies using invoke", async () => {
|
|
43
|
-
const providersList = inject(ProvidersList);
|
|
44
|
-
const myService = inject(MyService);
|
|
45
|
-
providersList.set("key", "value");
|
|
46
|
-
|
|
47
|
-
expect(inject(ProvidersList).get("key")).toEqual("value");
|
|
48
|
-
expect(myService.getValue()).toEqual("value");
|
|
49
|
-
|
|
50
|
-
const newMyService = await DITest.invoke(MyService, []);
|
|
51
|
-
expect(newMyService.getValue()).toEqual(undefined);
|
|
52
|
-
expect(myService.getValue()).toEqual("value");
|
|
53
|
-
});
|
|
54
|
-
});
|
package/src/common/fn/inject.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type {InvokeOptions} from "../interfaces/InvokeOptions.js";
|
|
2
|
-
import type {TokenProvider} from "../interfaces/TokenProvider.js";
|
|
3
|
-
import {injector} from "./injector.js";
|
|
4
|
-
import {invokeOptions, localsContainer} from "./localsContainer.js";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Inject a provider to another provider.
|
|
8
|
-
*
|
|
9
|
-
* Use this function to inject a custom provider on constructor parameter or property.
|
|
10
|
-
*
|
|
11
|
-
* ```typescript
|
|
12
|
-
* @Injectable()
|
|
13
|
-
* export class MyService {
|
|
14
|
-
* connection = inject(CONNECTION);
|
|
15
|
-
* }
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* @param token A token provider or token provider group
|
|
19
|
-
* @param opts
|
|
20
|
-
* @returns {Function}
|
|
21
|
-
* @decorator
|
|
22
|
-
*/
|
|
23
|
-
export function inject<TokenType>(
|
|
24
|
-
token: TokenProvider<TokenType>,
|
|
25
|
-
opts?: Partial<Pick<InvokeOptions, "useOpts" | "rebuild" | "locals">>
|
|
26
|
-
): TokenType {
|
|
27
|
-
return injector().resolve(token, {
|
|
28
|
-
...opts,
|
|
29
|
-
...invokeOptions(),
|
|
30
|
-
locals: opts?.locals || localsContainer()
|
|
31
|
-
});
|
|
32
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type {InvokeOptions} from "../interfaces/InvokeOptions.js";
|
|
2
|
-
import {injector} from "./injector.js";
|
|
3
|
-
import {localsContainer} from "./localsContainer.js";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Injects multiple instances of a given token using the injector service.
|
|
7
|
-
* @param token - The injection token to resolve
|
|
8
|
-
* @param opts - Optional configuration for the injection
|
|
9
|
-
* @param opts.useOpts - Options for instance creation
|
|
10
|
-
* @param opts.rebuild - Whether to rebuild the instance
|
|
11
|
-
* @param opts.locals - Local container overrides
|
|
12
|
-
* @returns Array of resolved instances
|
|
13
|
-
*/
|
|
14
|
-
export function injectMany<T>(token: string | symbol, opts?: Partial<Pick<InvokeOptions, "useOpts" | "rebuild" | "locals">>): T[] {
|
|
15
|
-
return injector().getMany<T>(token, {...opts, locals: opts?.locals || localsContainer()} as InvokeOptions);
|
|
16
|
-
}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import {Store} from "@tsed/core";
|
|
2
|
-
|
|
3
|
-
import {DITest} from "../../node/index.js";
|
|
4
|
-
import {ProviderScope} from "../domain/ProviderScope.js";
|
|
5
|
-
import {ProviderType} from "../domain/ProviderType.js";
|
|
6
|
-
import {inject} from "./inject.js";
|
|
7
|
-
import {controller, injectable, interceptor} from "./injectable.js";
|
|
8
|
-
import {logger} from "./logger.js";
|
|
9
|
-
|
|
10
|
-
class Nested {
|
|
11
|
-
get() {
|
|
12
|
-
return "hello";
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
class MyClass {
|
|
17
|
-
nested = inject(Nested);
|
|
18
|
-
logger = logger();
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
class MyController {}
|
|
22
|
-
|
|
23
|
-
injectable(Nested).scope(ProviderScope.SINGLETON).class(Nested);
|
|
24
|
-
injectable(MyClass);
|
|
25
|
-
|
|
26
|
-
describe("injectable", () => {
|
|
27
|
-
describe("injectable()", () => {
|
|
28
|
-
it("should define a singleton scope", async () => {
|
|
29
|
-
const instance = await DITest.invoke(MyClass);
|
|
30
|
-
|
|
31
|
-
expect(instance.nested).toBeInstanceOf(Nested);
|
|
32
|
-
expect(instance.nested.get()).toEqual("hello");
|
|
33
|
-
});
|
|
34
|
-
it("should define class with scope", async () => {
|
|
35
|
-
injectable(MyClass).scope(ProviderScope.SINGLETON).class(MyClass).store().set("test", "test");
|
|
36
|
-
|
|
37
|
-
expect(Store.from(MyClass).get("test")).toEqual("test");
|
|
38
|
-
});
|
|
39
|
-
it("should create a factory", async () => {
|
|
40
|
-
const builder = injectable(Symbol.for("Test")).factory(() => "test");
|
|
41
|
-
const provider = builder.inspect();
|
|
42
|
-
|
|
43
|
-
expect(provider.type).toEqual(ProviderType.PROVIDER);
|
|
44
|
-
expect(builder.token()).toEqual(Symbol.for("Test"));
|
|
45
|
-
});
|
|
46
|
-
it("should create an async factory", async () => {
|
|
47
|
-
const builder = injectable(Symbol.for("Test")).asyncFactory(() => Promise.resolve("test"));
|
|
48
|
-
const provider = builder.inspect();
|
|
49
|
-
|
|
50
|
-
expect(provider.type).toEqual(ProviderType.PROVIDER);
|
|
51
|
-
expect(builder.token()).toEqual(Symbol.for("Test"));
|
|
52
|
-
});
|
|
53
|
-
it("should create a value", async () => {
|
|
54
|
-
const builder = injectable(Symbol.for("Test")).value({
|
|
55
|
-
test: "test"
|
|
56
|
-
});
|
|
57
|
-
const provider = builder.inspect();
|
|
58
|
-
|
|
59
|
-
expect(provider.type).toEqual(ProviderType.VALUE);
|
|
60
|
-
expect(builder.token()).toEqual(Symbol.for("Test"));
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
describe("controller()", () => {
|
|
65
|
-
it("should define a singleton scope", async () => {
|
|
66
|
-
const builder = controller(MyController)
|
|
67
|
-
.path("/my-controller")
|
|
68
|
-
.scope(ProviderScope.REQUEST)
|
|
69
|
-
.middlewares({
|
|
70
|
-
use: [() => {}]
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
const provider = builder.inspect();
|
|
74
|
-
|
|
75
|
-
expect(provider.type).toEqual(ProviderType.CONTROLLER);
|
|
76
|
-
expect(provider.scope).toEqual(ProviderScope.REQUEST);
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
describe("interceptor()", () => {
|
|
81
|
-
it("should define a singleton scope", async () => {
|
|
82
|
-
const builder = interceptor(MyController);
|
|
83
|
-
const provider = builder.inspect();
|
|
84
|
-
|
|
85
|
-
expect(provider.type).toEqual(ProviderType.INTERCEPTOR);
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import {ControllerProvider} from "../domain/ControllerProvider.js";
|
|
2
|
-
import type {Provider} from "../domain/Provider.js";
|
|
3
|
-
import {ProviderType} from "../domain/ProviderType.js";
|
|
4
|
-
import {providerBuilder} from "../utils/providerBuilder.js";
|
|
5
|
-
|
|
6
|
-
type PickedProps = "scope" | "path" | "alias" | "hooks" | "deps" | "imports" | "configuration" | "priority";
|
|
7
|
-
|
|
8
|
-
const Props = ["type", "scope", "path", "alias", "hooks", "deps", "imports", "configuration", "priority"];
|
|
9
|
-
export const injectable = providerBuilder<Provider, PickedProps | "type">(Props);
|
|
10
|
-
export const interceptor = providerBuilder<Provider, PickedProps | "type">(Props, {
|
|
11
|
-
type: ProviderType.INTERCEPTOR
|
|
12
|
-
});
|
|
13
|
-
export const controller = providerBuilder<ControllerProvider, PickedProps | "children" | "middlewares">([...Props, "middlewares"], {
|
|
14
|
-
type: ProviderType.CONTROLLER
|
|
15
|
-
});
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import {InjectorService} from "../services/InjectorService.js";
|
|
2
|
-
|
|
3
|
-
let globalInjector: InjectorService = new InjectorService();
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Return the existing injector service.
|
|
7
|
-
*
|
|
8
|
-
* Example:
|
|
9
|
-
*
|
|
10
|
-
* ```typescript
|
|
11
|
-
* import {injector, Injectable} from "@tsed/di";
|
|
12
|
-
*
|
|
13
|
-
* @Injectable()
|
|
14
|
-
* class MyService {
|
|
15
|
-
* injector = injector();
|
|
16
|
-
* }
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
export function injector(): InjectorService {
|
|
20
|
-
return globalInjector;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export async function destroyInjector() {
|
|
24
|
-
await globalInjector.destroy();
|
|
25
|
-
globalInjector = new InjectorService();
|
|
26
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import {afterEach, beforeEach} from "vitest";
|
|
2
|
-
|
|
3
|
-
import {DITest} from "../../node/index.js";
|
|
4
|
-
import {lazyInject, optionalLazyInject} from "./lazyInject.js";
|
|
5
|
-
|
|
6
|
-
describe("lazyInject", () => {
|
|
7
|
-
beforeEach(() => DITest.create());
|
|
8
|
-
afterEach(() => DITest.reset());
|
|
9
|
-
|
|
10
|
-
it("should lazy load module", async () => {
|
|
11
|
-
const service = await lazyInject(() => import("./__mock__/lazy.import.module.js"));
|
|
12
|
-
|
|
13
|
-
expect(service).toBeDefined();
|
|
14
|
-
expect(service.called).toBeTruthy();
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
it("should optionally lazy load module", async () => {
|
|
18
|
-
const service = await optionalLazyInject(() => import("./__mock__/lazy.import.module.js"));
|
|
19
|
-
|
|
20
|
-
expect(service).toBeDefined();
|
|
21
|
-
});
|
|
22
|
-
});
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import {isFunction} from "@tsed/core/utils/isFunction.js";
|
|
2
|
-
|
|
3
|
-
import type {TokenProvider} from "../interfaces/TokenProvider.js";
|
|
4
|
-
import {inject} from "./inject.js";
|
|
5
|
-
import {injector} from "./injector.js";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Lazy load a provider from his package and invoke only when the provider is used.
|
|
9
|
-
*/
|
|
10
|
-
export async function lazyInject<Token>(factory: () => Promise<{default: TokenProvider<Token>}>): Promise<Token> {
|
|
11
|
-
const {default: token} = await factory();
|
|
12
|
-
|
|
13
|
-
if (!injector().has(token)) {
|
|
14
|
-
const instance = await inject(token);
|
|
15
|
-
|
|
16
|
-
const instanceWithHook = instance as unknown as {$onInit?: () => Promise<void>};
|
|
17
|
-
|
|
18
|
-
if ("$onInit" in instanceWithHook && isFunction(instanceWithHook.$onInit)) {
|
|
19
|
-
await instanceWithHook.$onInit();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return injector().get(token) as unknown as Promise<Token>;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export async function optionalLazyInject<Token>(
|
|
27
|
-
factory: () => Promise<{
|
|
28
|
-
default: TokenProvider;
|
|
29
|
-
}>
|
|
30
|
-
): Promise<Token | undefined> {
|
|
31
|
-
try {
|
|
32
|
-
return await lazyInject(factory);
|
|
33
|
-
} catch (er) {
|
|
34
|
-
return undefined;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import {LocalsContainer} from "../domain/LocalsContainer.js";
|
|
2
|
-
import type {UseImportTokenProviderOpts} from "../interfaces/ImportTokenProviderOpts.js";
|
|
3
|
-
import {InjectorService} from "../services/InjectorService.js";
|
|
4
|
-
import {injector} from "./injector.js";
|
|
5
|
-
|
|
6
|
-
let globalLocals: LocalsContainer | undefined;
|
|
7
|
-
let globalInvOpts: any = {};
|
|
8
|
-
const stagedLocals: LocalsContainer[] = [];
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Get the locals container initiated by DITest or .bootstrap() method.
|
|
12
|
-
*/
|
|
13
|
-
export function localsContainer({
|
|
14
|
-
providers,
|
|
15
|
-
rebuild
|
|
16
|
-
}: {
|
|
17
|
-
providers?: UseImportTokenProviderOpts[];
|
|
18
|
-
rebuild?: boolean;
|
|
19
|
-
} = {}) {
|
|
20
|
-
if (!globalLocals || providers) {
|
|
21
|
-
globalLocals = new LocalsContainer();
|
|
22
|
-
|
|
23
|
-
if (providers) {
|
|
24
|
-
providers.forEach((p) => {
|
|
25
|
-
globalLocals!.set(p.token, p.use);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
globalLocals.set(InjectorService, injector());
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (rebuild) {
|
|
32
|
-
globalInvOpts.rebuild = rebuild;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return globalLocals;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export function invokeOptions() {
|
|
40
|
-
return {...globalInvOpts};
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Reset the locals container.
|
|
45
|
-
*/
|
|
46
|
-
export function detachLocalsContainer() {
|
|
47
|
-
globalLocals && stagedLocals.push(globalLocals);
|
|
48
|
-
globalLocals = undefined;
|
|
49
|
-
globalInvOpts = {};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export function cleanAllLocalsContainer() {
|
|
53
|
-
detachLocalsContainer();
|
|
54
|
-
stagedLocals.map((item) => item.clear());
|
|
55
|
-
}
|
package/src/common/fn/logger.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import {DITest} from "../../node/index.js";
|
|
2
|
-
import {configuration} from "./configuration.js";
|
|
3
|
-
import {refValue} from "./refValue.js";
|
|
4
|
-
|
|
5
|
-
describe("refValue()", () => {
|
|
6
|
-
beforeEach(() =>
|
|
7
|
-
DITest.create({
|
|
8
|
-
logger: {
|
|
9
|
-
level: "off"
|
|
10
|
-
}
|
|
11
|
-
})
|
|
12
|
-
);
|
|
13
|
-
afterEach(() => DITest.reset());
|
|
14
|
-
describe("when decorator is used as property decorator", () => {
|
|
15
|
-
it("should create a getter", async () => {
|
|
16
|
-
// WHEN
|
|
17
|
-
class Test {
|
|
18
|
-
test = refValue("logger.level", "default value");
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// THEN
|
|
22
|
-
|
|
23
|
-
const test = await DITest.invoke<Test>(Test);
|
|
24
|
-
|
|
25
|
-
expect(test.test.value).toEqual("off");
|
|
26
|
-
|
|
27
|
-
test.test.value = "test";
|
|
28
|
-
|
|
29
|
-
expect(test.test.value).toEqual("test");
|
|
30
|
-
});
|
|
31
|
-
it("should create a getter with default value", async () => {
|
|
32
|
-
expect(configuration().get("logger.test")).toEqual(undefined);
|
|
33
|
-
|
|
34
|
-
// WHEN
|
|
35
|
-
class Test {
|
|
36
|
-
test = refValue("logger.test", "default value");
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// THEN
|
|
40
|
-
|
|
41
|
-
const test = await DITest.invoke<Test>(Test);
|
|
42
|
-
|
|
43
|
-
expect(test.test.value).toEqual("default value");
|
|
44
|
-
expect(configuration().get("logger.test")).toEqual(undefined);
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
});
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import {injector} from "./injector.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Get a value from the `injector.settings`.
|
|
5
|
-
*
|
|
6
|
-
* ## Example
|
|
7
|
-
*
|
|
8
|
-
* ```ts
|
|
9
|
-
* import {refValue, Injectable} from "@tsed/di";
|
|
10
|
-
*
|
|
11
|
-
* @Injectable()
|
|
12
|
-
* class Test {
|
|
13
|
-
* test = refValue("logger.level", "default value");
|
|
14
|
-
*
|
|
15
|
-
* constructor() {
|
|
16
|
-
* console.log(this.test.value); // "off"
|
|
17
|
-
* }
|
|
18
|
-
* }
|
|
19
|
-
*
|
|
20
|
-
* @param expression The expression to get the value from the `injector.settings`.
|
|
21
|
-
*/
|
|
22
|
-
export function refValue<Type>(expression: string): {value: Type | undefined};
|
|
23
|
-
export function refValue<Type>(expression: string, defaultValue: Type | undefined): {value: Type};
|
|
24
|
-
export function refValue<Type>(expression: string, defaultValue?: Type | undefined): {value: Type | undefined} {
|
|
25
|
-
return Object.freeze({
|
|
26
|
-
get value() {
|
|
27
|
-
return injector().settings.get(expression, defaultValue);
|
|
28
|
-
},
|
|
29
|
-
set value(value: Type) {
|
|
30
|
-
injector().settings.set(expression, value);
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
}
|
package/src/common/index.ts
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file Automatically generated by @tsed/barrels.
|
|
3
|
-
*/
|
|
4
|
-
export * from "./constants/constants.js";
|
|
5
|
-
export * from "./decorators/autoInjectable.js";
|
|
6
|
-
export * from "./decorators/configuration.js";
|
|
7
|
-
export * from "./decorators/constant.js";
|
|
8
|
-
export * from "./decorators/controller.js";
|
|
9
|
-
export * from "./decorators/inject.js";
|
|
10
|
-
export * from "./decorators/injectable.js";
|
|
11
|
-
export * from "./decorators/intercept.js";
|
|
12
|
-
export * from "./decorators/interceptor.js";
|
|
13
|
-
export * from "./decorators/lazyInject.js";
|
|
14
|
-
export * from "./decorators/module.js";
|
|
15
|
-
export * from "./decorators/opts.js";
|
|
16
|
-
export * from "./decorators/overrideProvider.js";
|
|
17
|
-
export * from "./decorators/scope.js";
|
|
18
|
-
export * from "./decorators/service.js";
|
|
19
|
-
export * from "./decorators/useOpts.js";
|
|
20
|
-
export * from "./decorators/value.js";
|
|
21
|
-
export * from "./domain/Container.js";
|
|
22
|
-
export * from "./domain/ControllerProvider.js";
|
|
23
|
-
export * from "./domain/InjectablePropertyType.js";
|
|
24
|
-
export * from "./domain/LocalsContainer.js";
|
|
25
|
-
export * from "./domain/Provider.js";
|
|
26
|
-
export * from "./domain/ProviderScope.js";
|
|
27
|
-
export * from "./domain/ProviderType.js";
|
|
28
|
-
export * from "./errors/InjectionError.js";
|
|
29
|
-
export * from "./errors/InvalidPropertyTokenError.js";
|
|
30
|
-
export * from "./fn/configuration.js";
|
|
31
|
-
export * from "./fn/constant.js";
|
|
32
|
-
export * from "./fn/inject.js";
|
|
33
|
-
export * from "./fn/injectable.js";
|
|
34
|
-
export * from "./fn/injectMany.js";
|
|
35
|
-
export * from "./fn/injector.js";
|
|
36
|
-
export * from "./fn/lazyInject.js";
|
|
37
|
-
export * from "./fn/localsContainer.js";
|
|
38
|
-
export * from "./fn/logger.js";
|
|
39
|
-
export * from "./fn/refValue.js";
|
|
40
|
-
export * from "./interfaces/DIConfigurationOptions.js";
|
|
41
|
-
export * from "./interfaces/DILogger.js";
|
|
42
|
-
export * from "./interfaces/DILoggerOptions.js";
|
|
43
|
-
export * from "./interfaces/ImportTokenProviderOpts.js";
|
|
44
|
-
export * from "./interfaces/InterceptorContext.js";
|
|
45
|
-
export * from "./interfaces/InterceptorMethods.js";
|
|
46
|
-
export * from "./interfaces/InvokeOptions.js";
|
|
47
|
-
export * from "./interfaces/OnDestroy.js";
|
|
48
|
-
export * from "./interfaces/OnInit.js";
|
|
49
|
-
export * from "./interfaces/ProviderOpts.js";
|
|
50
|
-
export * from "./interfaces/RegistrySettings.js";
|
|
51
|
-
export * from "./interfaces/ResolvedInvokeOptions.js";
|
|
52
|
-
export * from "./interfaces/TokenProvider.js";
|
|
53
|
-
export * from "./interfaces/TokenRoute.js";
|
|
54
|
-
export * from "./registries/GlobalProviders.js";
|
|
55
|
-
export * from "./registries/ProviderRegistry.js";
|
|
56
|
-
export * from "./services/DIConfiguration.js";
|
|
57
|
-
export * from "./services/DILogger.js";
|
|
58
|
-
export * from "./services/InjectorService.js";
|
|
59
|
-
export * from "./utils/colors.js";
|
|
60
|
-
export * from "./utils/createContainer.js";
|
|
61
|
-
export * from "./utils/discoverHooks.js";
|
|
62
|
-
export * from "./utils/getConfiguration.js";
|
|
63
|
-
export * from "./utils/getConstructorDependencies.js";
|
|
64
|
-
export * from "./utils/providerBuilder.js";
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import {isPromise} from "@tsed/core";
|
|
2
|
-
import {afterEach, beforeEach} from "vitest";
|
|
3
|
-
|
|
4
|
-
import {Inject} from "../decorators/inject.js";
|
|
5
|
-
import {Injectable} from "../decorators/injectable.js";
|
|
6
|
-
import {Container} from "../domain/Container.js";
|
|
7
|
-
import {destroyInjector, injector} from "../fn/injector.js";
|
|
8
|
-
import {GlobalProviders} from "../registries/GlobalProviders.js";
|
|
9
|
-
import {registerProvider} from "../registries/ProviderRegistry.js";
|
|
10
|
-
import {InjectorService} from "../services/InjectorService.js";
|
|
11
|
-
|
|
12
|
-
describe("DI", () => {
|
|
13
|
-
afterEach(() => destroyInjector());
|
|
14
|
-
describe("create new injector", () => {
|
|
15
|
-
const ASYNC_FACTORY = Symbol.for("ASYNC_FACTORY");
|
|
16
|
-
|
|
17
|
-
registerProvider({
|
|
18
|
-
token: ASYNC_FACTORY,
|
|
19
|
-
|
|
20
|
-
useAsyncFactory() {
|
|
21
|
-
return {
|
|
22
|
-
connection: true,
|
|
23
|
-
close() {}
|
|
24
|
-
};
|
|
25
|
-
},
|
|
26
|
-
hooks: {
|
|
27
|
-
$onDestroy(instance: any) {
|
|
28
|
-
return instance.close();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
@Injectable()
|
|
34
|
-
class Server {
|
|
35
|
-
@Inject(ASYNC_FACTORY)
|
|
36
|
-
asyncFactory: any;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
afterAll(() => {
|
|
40
|
-
GlobalProviders.delete(Server);
|
|
41
|
-
GlobalProviders.delete(ASYNC_FACTORY);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
it("should load all providers with the SINGLETON scope only", async () => {
|
|
45
|
-
// GIVEN
|
|
46
|
-
const container = new Container();
|
|
47
|
-
container.add(ASYNC_FACTORY);
|
|
48
|
-
container.add(Server);
|
|
49
|
-
|
|
50
|
-
const server = injector().invoke<any>(Server);
|
|
51
|
-
expect(isPromise(server.asyncFactory)).toEqual(true);
|
|
52
|
-
|
|
53
|
-
// WHEN
|
|
54
|
-
await injector().load(container);
|
|
55
|
-
|
|
56
|
-
expect(isPromise(server.asyncFactory)).toEqual(false);
|
|
57
|
-
expect(server.asyncFactory.connection).toEqual(true);
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
});
|