@elsikora/cladi 2.0.2-dev.1 → 2.1.0-dev.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/README.md +598 -211
- package/dist/cjs/application/utility/safe-deep-clone.utility.d.ts.map +1 -1
- package/dist/cjs/application/utility/safe-deep-clone.utility.js +104 -10
- package/dist/cjs/application/utility/safe-deep-clone.utility.js.map +1 -1
- package/dist/cjs/domain/enum/captive-dependency-policy.enum.d.ts +6 -0
- package/dist/cjs/domain/enum/captive-dependency-policy.enum.d.ts.map +1 -0
- package/dist/cjs/domain/enum/captive-dependency-policy.enum.js +9 -0
- package/dist/cjs/domain/enum/captive-dependency-policy.enum.js.map +1 -0
- package/dist/cjs/domain/enum/dependency-lifecycle.enum.d.ts +6 -0
- package/dist/cjs/domain/enum/dependency-lifecycle.enum.d.ts.map +1 -0
- package/dist/cjs/domain/enum/dependency-lifecycle.enum.js +9 -0
- package/dist/cjs/domain/enum/dependency-lifecycle.enum.js.map +1 -0
- package/dist/cjs/domain/enum/di-container-duplicate-provider-policy.enum.d.ts +6 -0
- package/dist/cjs/domain/enum/di-container-duplicate-provider-policy.enum.d.ts.map +1 -0
- package/dist/cjs/domain/enum/di-container-duplicate-provider-policy.enum.js +9 -0
- package/dist/cjs/domain/enum/di-container-duplicate-provider-policy.enum.js.map +1 -0
- package/dist/cjs/domain/enum/index.d.ts +4 -0
- package/dist/cjs/domain/enum/index.d.ts.map +1 -1
- package/dist/cjs/domain/enum/logger-log-level.enum.js.map +1 -1
- package/dist/cjs/domain/enum/provider-type.enum.d.ts +8 -0
- package/dist/cjs/domain/enum/provider-type.enum.d.ts.map +1 -0
- package/dist/cjs/domain/enum/provider-type.enum.js +11 -0
- package/dist/cjs/domain/enum/provider-type.enum.js.map +1 -0
- package/dist/cjs/domain/index.d.ts +1 -0
- package/dist/cjs/domain/index.d.ts.map +1 -1
- package/dist/cjs/domain/interface/di/alias-provider.interface.d.ts +6 -0
- package/dist/cjs/domain/interface/di/alias-provider.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/class-provider.interface.d.ts +9 -0
- package/dist/cjs/domain/interface/di/class-provider.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/container-snapshot.interface.d.ts +19 -0
- package/dist/cjs/domain/interface/di/container-snapshot.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/dependency-graph.interface.d.ts +19 -0
- package/dist/cjs/domain/interface/di/dependency-graph.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/factory-provider.interface.d.ts +9 -0
- package/dist/cjs/domain/interface/di/factory-provider.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/index.d.ts +15 -0
- package/dist/cjs/domain/interface/di/index.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/lazy-provider.interface.d.ts +6 -0
- package/dist/cjs/domain/interface/di/lazy-provider.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/module.interface.d.ts +8 -0
- package/dist/cjs/domain/interface/di/module.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/provider-base.interface.d.ts +11 -0
- package/dist/cjs/domain/interface/di/provider-base.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/resolution-explanation.interface.d.ts +14 -0
- package/dist/cjs/domain/interface/di/resolution-explanation.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/resolve-interceptor.interface.d.ts +26 -0
- package/dist/cjs/domain/interface/di/resolve-interceptor.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/resolver.interface.d.ts +10 -0
- package/dist/cjs/domain/interface/di/resolver.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/scope-create-options.interface.d.ts +9 -0
- package/dist/cjs/domain/interface/di/scope-create-options.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/scope.interface.d.ts +23 -0
- package/dist/cjs/domain/interface/di/scope.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/value-provider.interface.d.ts +5 -0
- package/dist/cjs/domain/interface/di/value-provider.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/error.interface.d.ts +6 -2
- package/dist/cjs/domain/interface/error.interface.d.ts.map +1 -1
- package/dist/cjs/domain/interface/index.d.ts +1 -3
- package/dist/cjs/domain/interface/index.d.ts.map +1 -1
- package/dist/cjs/domain/interface/logger/index.d.ts +2 -2
- package/dist/cjs/domain/interface/logger/index.d.ts.map +1 -1
- package/dist/cjs/domain/type/di/constructor.type.d.ts +2 -0
- package/dist/cjs/domain/type/di/constructor.type.d.ts.map +1 -0
- package/dist/cjs/domain/type/di/di-container.type.d.ts +3 -0
- package/dist/cjs/domain/type/di/di-container.type.d.ts.map +1 -0
- package/dist/cjs/domain/type/di/index.d.ts +5 -0
- package/dist/cjs/domain/type/di/index.d.ts.map +1 -0
- package/dist/cjs/domain/type/di/provider.type.d.ts +7 -0
- package/dist/cjs/domain/type/di/provider.type.d.ts.map +1 -0
- package/dist/cjs/domain/type/di/token.type.d.ts +4 -0
- package/dist/cjs/domain/type/di/token.type.d.ts.map +1 -0
- package/dist/cjs/domain/type/index.d.ts +2 -0
- package/dist/cjs/domain/type/index.d.ts.map +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +60 -12
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/infrastructure/class/base/error.class.d.ts +7 -4
- package/dist/cjs/infrastructure/class/base/error.class.d.ts.map +1 -1
- package/dist/cjs/infrastructure/class/base/error.class.js +13 -3
- package/dist/cjs/infrastructure/class/base/error.class.js.map +1 -1
- package/dist/cjs/infrastructure/class/base/index.d.ts +0 -3
- package/dist/cjs/infrastructure/class/base/index.d.ts.map +1 -1
- package/dist/cjs/infrastructure/class/di/cache/coordinator.class.d.ts +14 -0
- package/dist/cjs/infrastructure/class/di/cache/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/cache/coordinator.class.js +126 -0
- package/dist/cjs/infrastructure/class/di/cache/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/captive/coordinator.class.d.ts +17 -0
- package/dist/cjs/infrastructure/class/di/captive/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/captive/coordinator.class.js +62 -0
- package/dist/cjs/infrastructure/class/di/captive/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/container.class.d.ts +75 -0
- package/dist/cjs/infrastructure/class/di/container.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/container.class.js +632 -0
- package/dist/cjs/infrastructure/class/di/container.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/disposal/coordinator.class.d.ts +34 -0
- package/dist/cjs/infrastructure/class/di/disposal/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/disposal/coordinator.class.js +93 -0
- package/dist/cjs/infrastructure/class/di/disposal/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/disposal/manager.class.d.ts +28 -0
- package/dist/cjs/infrastructure/class/di/disposal/manager.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/disposal/manager.class.js +104 -0
- package/dist/cjs/infrastructure/class/di/disposal/manager.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/disposer/coordinator.class.d.ts +41 -0
- package/dist/cjs/infrastructure/class/di/disposer/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/disposer/coordinator.class.js +140 -0
- package/dist/cjs/infrastructure/class/di/disposer/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/engine/resolution.class.d.ts +38 -0
- package/dist/cjs/infrastructure/class/di/engine/resolution.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/engine/resolution.class.js +153 -0
- package/dist/cjs/infrastructure/class/di/engine/resolution.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/graph/coordinator.class.d.ts +42 -0
- package/dist/cjs/infrastructure/class/di/graph/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/graph/coordinator.class.js +121 -0
- package/dist/cjs/infrastructure/class/di/graph/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/index.d.ts +3 -0
- package/dist/cjs/infrastructure/class/di/index.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/interceptor/dispatcher.class.d.ts +17 -0
- package/dist/cjs/infrastructure/class/di/interceptor/dispatcher.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/interceptor/dispatcher.class.js +91 -0
- package/dist/cjs/infrastructure/class/di/interceptor/dispatcher.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/interface/index.d.ts +3 -0
- package/dist/cjs/infrastructure/class/di/interface/index.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/interface/internal-container-options.interface.d.ts +7 -0
- package/dist/cjs/infrastructure/class/di/interface/internal-container-options.interface.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/interface/provider/index.d.ts +3 -0
- package/dist/cjs/infrastructure/class/di/interface/provider/index.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/interface/provider/lookup.interface.d.ts +8 -0
- package/dist/cjs/infrastructure/class/di/interface/provider/lookup.interface.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/interface/provider/registration.interface.d.ts +11 -0
- package/dist/cjs/infrastructure/class/di/interface/provider/registration.interface.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/lookup/coordinator.class.d.ts +10 -0
- package/dist/cjs/infrastructure/class/di/lookup/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/lookup/coordinator.class.js +78 -0
- package/dist/cjs/infrastructure/class/di/lookup/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/registration/coordinator.class.d.ts +41 -0
- package/dist/cjs/infrastructure/class/di/registration/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/registration/coordinator.class.js +251 -0
- package/dist/cjs/infrastructure/class/di/registration/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/resolution/coordinator.class.d.ts +62 -0
- package/dist/cjs/infrastructure/class/di/resolution/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/resolution/coordinator.class.js +599 -0
- package/dist/cjs/infrastructure/class/di/resolution/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/constant/console-logger-default-options.constant.js +4 -0
- package/dist/cjs/infrastructure/constant/console-logger-default-options.constant.js.map +1 -1
- package/dist/cjs/infrastructure/factory/core.factory.d.ts +11 -31
- package/dist/cjs/infrastructure/factory/core.factory.d.ts.map +1 -1
- package/dist/cjs/infrastructure/factory/core.factory.js +13 -47
- package/dist/cjs/infrastructure/factory/core.factory.js.map +1 -1
- package/dist/cjs/infrastructure/index.d.ts +1 -0
- package/dist/cjs/infrastructure/index.d.ts.map +1 -1
- package/dist/cjs/infrastructure/interface/base/error-options.interface.d.ts +1 -1
- package/dist/cjs/infrastructure/interface/base/index.d.ts +0 -3
- package/dist/cjs/infrastructure/interface/base/index.d.ts.map +1 -1
- package/dist/cjs/infrastructure/interface/console-logger-options.interface.d.ts +1 -1
- package/dist/cjs/infrastructure/interface/core-factory-options.interface.d.ts +1 -1
- package/dist/cjs/infrastructure/interface/di-container-options.interface.d.ts +12 -0
- package/dist/cjs/infrastructure/interface/di-container-options.interface.d.ts.map +1 -0
- package/dist/cjs/infrastructure/interface/index.d.ts +1 -0
- package/dist/cjs/infrastructure/interface/index.d.ts.map +1 -1
- package/dist/cjs/infrastructure/service/console-logger.service.d.ts.map +1 -1
- package/dist/cjs/infrastructure/service/console-logger.service.js +10 -6
- package/dist/cjs/infrastructure/service/console-logger.service.js.map +1 -1
- package/dist/cjs/infrastructure/utility/to-error.utility.d.ts +7 -0
- package/dist/cjs/infrastructure/utility/to-error.utility.d.ts.map +1 -0
- package/dist/cjs/infrastructure/utility/to-error.utility.js +22 -0
- package/dist/cjs/infrastructure/utility/to-error.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/constant/injectable-metadata-key.constant.d.ts +2 -0
- package/dist/cjs/presentation/ergonomics/constant/injectable-metadata-key.constant.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/constant/injectable-metadata-key.constant.js +6 -0
- package/dist/cjs/presentation/ergonomics/constant/injectable-metadata-key.constant.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/constant/module-metadata-key.constant.d.ts +2 -0
- package/dist/cjs/presentation/ergonomics/constant/module-metadata-key.constant.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/constant/module-metadata-key.constant.js +6 -0
- package/dist/cjs/presentation/ergonomics/constant/module-metadata-key.constant.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/after-resolve.decorator.d.ts +6 -0
- package/dist/cjs/presentation/ergonomics/decorator/after-resolve.decorator.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/after-resolve.decorator.js +41 -0
- package/dist/cjs/presentation/ergonomics/decorator/after-resolve.decorator.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/index.d.ts +7 -0
- package/dist/cjs/presentation/ergonomics/decorator/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/inject.decorator.d.ts +8 -0
- package/dist/cjs/presentation/ergonomics/decorator/inject.decorator.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/inject.decorator.js +35 -0
- package/dist/cjs/presentation/ergonomics/decorator/inject.decorator.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/injectable.decorator.d.ts +8 -0
- package/dist/cjs/presentation/ergonomics/decorator/injectable.decorator.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/injectable.decorator.js +89 -0
- package/dist/cjs/presentation/ergonomics/decorator/injectable.decorator.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/module.decorator.d.ts +8 -0
- package/dist/cjs/presentation/ergonomics/decorator/module.decorator.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/module.decorator.js +143 -0
- package/dist/cjs/presentation/ergonomics/decorator/module.decorator.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-dispose.decorator.d.ts +6 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-dispose.decorator.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-dispose.decorator.js +41 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-dispose.decorator.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-init.decorator.d.ts +6 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-init.decorator.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-init.decorator.js +41 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-init.decorator.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/index.d.ts +4 -0
- package/dist/cjs/presentation/ergonomics/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/create/autowire-provider-options.interface.d.ts +12 -0
- package/dist/cjs/presentation/ergonomics/interface/create/autowire-provider-options.interface.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/create/index.d.ts +3 -0
- package/dist/cjs/presentation/ergonomics/interface/create/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/create/module-options.interface.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/interface/create/module-options.interface.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/decorator/index.d.ts +2 -0
- package/dist/cjs/presentation/ergonomics/interface/decorator/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/decorator/module-options.interface.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/interface/decorator/module-options.interface.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/index.d.ts +4 -0
- package/dist/cjs/presentation/ergonomics/interface/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/injectable/index.d.ts +3 -0
- package/dist/cjs/presentation/ergonomics/interface/injectable/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/injectable/metadata.interface.d.ts +12 -0
- package/dist/cjs/presentation/ergonomics/interface/injectable/metadata.interface.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/injectable/options.interface.d.ts +4 -0
- package/dist/cjs/presentation/ergonomics/interface/injectable/options.interface.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-decorated-modules.utility.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-decorated-modules.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-decorated-modules.utility.js +63 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-decorated-modules.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-modules.utility.d.ts +10 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-modules.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-modules.utility.js +188 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-modules.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire-provider.utility.d.ts +14 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire-provider.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire-provider.utility.js +110 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire-provider.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire.utility.d.ts +15 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire.utility.js +34 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/index.d.ts +5 -0
- package/dist/cjs/presentation/ergonomics/utility/create/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module-from-decorator.utility.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module-from-decorator.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module-from-decorator.utility.js +135 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module-from-decorator.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module.utility.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module.utility.js +19 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/index.d.ts +6 -0
- package/dist/cjs/presentation/ergonomics/utility/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/get.utility.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/get.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/get.utility.js +20 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/get.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/index.d.ts +3 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/set.utility.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/set.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/set.utility.js +15 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/set.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/get.utility.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/get.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/get.utility.js +20 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/get.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/index.d.ts +3 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/set.utility.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/set.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/set.utility.js +15 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/set.utility.js.map +1 -0
- package/dist/cjs/presentation/utility/create/di-container.utility.d.ts +9 -0
- package/dist/cjs/presentation/utility/create/di-container.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/utility/create/di-container.utility.js +15 -0
- package/dist/cjs/presentation/utility/create/di-container.utility.js.map +1 -0
- package/dist/cjs/presentation/utility/create/index.d.ts +3 -3
- package/dist/cjs/presentation/utility/create/index.d.ts.map +1 -1
- package/dist/cjs/presentation/utility/create/lazy-provider.utility.d.ts +24 -0
- package/dist/cjs/presentation/utility/create/lazy-provider.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/utility/create/lazy-provider.utility.js +29 -0
- package/dist/cjs/presentation/utility/create/lazy-provider.utility.js.map +1 -0
- package/dist/cjs/presentation/utility/create/logger.utility.d.ts +1 -1
- package/dist/cjs/presentation/utility/create/logger.utility.js +1 -1
- package/dist/cjs/presentation/utility/create/logger.utility.js.map +1 -1
- package/dist/cjs/presentation/utility/create/token.utility.d.ts +9 -0
- package/dist/cjs/presentation/utility/create/token.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/utility/create/token.utility.js +14 -0
- package/dist/cjs/presentation/utility/create/token.utility.js.map +1 -0
- package/dist/esm/application/utility/safe-deep-clone.utility.d.ts.map +1 -1
- package/dist/esm/application/utility/safe-deep-clone.utility.js +104 -10
- package/dist/esm/application/utility/safe-deep-clone.utility.js.map +1 -1
- package/dist/esm/domain/enum/captive-dependency-policy.enum.d.ts +6 -0
- package/dist/esm/domain/enum/captive-dependency-policy.enum.d.ts.map +1 -0
- package/dist/esm/domain/enum/captive-dependency-policy.enum.js +9 -0
- package/dist/esm/domain/enum/captive-dependency-policy.enum.js.map +1 -0
- package/dist/esm/domain/enum/dependency-lifecycle.enum.d.ts +6 -0
- package/dist/esm/domain/enum/dependency-lifecycle.enum.d.ts.map +1 -0
- package/dist/esm/domain/enum/dependency-lifecycle.enum.js +9 -0
- package/dist/esm/domain/enum/dependency-lifecycle.enum.js.map +1 -0
- package/dist/esm/domain/enum/di-container-duplicate-provider-policy.enum.d.ts +6 -0
- package/dist/esm/domain/enum/di-container-duplicate-provider-policy.enum.d.ts.map +1 -0
- package/dist/esm/domain/enum/di-container-duplicate-provider-policy.enum.js +9 -0
- package/dist/esm/domain/enum/di-container-duplicate-provider-policy.enum.js.map +1 -0
- package/dist/esm/domain/enum/index.d.ts +4 -0
- package/dist/esm/domain/enum/index.d.ts.map +1 -1
- package/dist/esm/domain/enum/logger-log-level.enum.js.map +1 -1
- package/dist/esm/domain/enum/provider-type.enum.d.ts +8 -0
- package/dist/esm/domain/enum/provider-type.enum.d.ts.map +1 -0
- package/dist/esm/domain/enum/provider-type.enum.js +11 -0
- package/dist/esm/domain/enum/provider-type.enum.js.map +1 -0
- package/dist/esm/domain/index.d.ts +1 -0
- package/dist/esm/domain/index.d.ts.map +1 -1
- package/dist/esm/domain/interface/di/alias-provider.interface.d.ts +6 -0
- package/dist/esm/domain/interface/di/alias-provider.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/class-provider.interface.d.ts +9 -0
- package/dist/esm/domain/interface/di/class-provider.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/container-snapshot.interface.d.ts +19 -0
- package/dist/esm/domain/interface/di/container-snapshot.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/dependency-graph.interface.d.ts +19 -0
- package/dist/esm/domain/interface/di/dependency-graph.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/factory-provider.interface.d.ts +9 -0
- package/dist/esm/domain/interface/di/factory-provider.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/index.d.ts +15 -0
- package/dist/esm/domain/interface/di/index.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/lazy-provider.interface.d.ts +6 -0
- package/dist/esm/domain/interface/di/lazy-provider.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/module.interface.d.ts +8 -0
- package/dist/esm/domain/interface/di/module.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/provider-base.interface.d.ts +11 -0
- package/dist/esm/domain/interface/di/provider-base.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/resolution-explanation.interface.d.ts +14 -0
- package/dist/esm/domain/interface/di/resolution-explanation.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/resolve-interceptor.interface.d.ts +26 -0
- package/dist/esm/domain/interface/di/resolve-interceptor.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/resolver.interface.d.ts +10 -0
- package/dist/esm/domain/interface/di/resolver.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/scope-create-options.interface.d.ts +9 -0
- package/dist/esm/domain/interface/di/scope-create-options.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/scope.interface.d.ts +23 -0
- package/dist/esm/domain/interface/di/scope.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/value-provider.interface.d.ts +5 -0
- package/dist/esm/domain/interface/di/value-provider.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/error.interface.d.ts +6 -2
- package/dist/esm/domain/interface/error.interface.d.ts.map +1 -1
- package/dist/esm/domain/interface/index.d.ts +1 -3
- package/dist/esm/domain/interface/index.d.ts.map +1 -1
- package/dist/esm/domain/interface/logger/index.d.ts +2 -2
- package/dist/esm/domain/interface/logger/index.d.ts.map +1 -1
- package/dist/esm/domain/type/di/constructor.type.d.ts +2 -0
- package/dist/esm/domain/type/di/constructor.type.d.ts.map +1 -0
- package/dist/esm/domain/type/di/di-container.type.d.ts +3 -0
- package/dist/esm/domain/type/di/di-container.type.d.ts.map +1 -0
- package/dist/esm/domain/type/di/index.d.ts +5 -0
- package/dist/esm/domain/type/di/index.d.ts.map +1 -0
- package/dist/esm/domain/type/di/provider.type.d.ts +7 -0
- package/dist/esm/domain/type/di/provider.type.d.ts.map +1 -0
- package/dist/esm/domain/type/di/token.type.d.ts +4 -0
- package/dist/esm/domain/type/di/token.type.d.ts.map +1 -0
- package/dist/esm/domain/type/index.d.ts +2 -0
- package/dist/esm/domain/type/index.d.ts.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +24 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/infrastructure/class/base/error.class.d.ts +7 -4
- package/dist/esm/infrastructure/class/base/error.class.d.ts.map +1 -1
- package/dist/esm/infrastructure/class/base/error.class.js +13 -3
- package/dist/esm/infrastructure/class/base/error.class.js.map +1 -1
- package/dist/esm/infrastructure/class/base/index.d.ts +0 -3
- package/dist/esm/infrastructure/class/base/index.d.ts.map +1 -1
- package/dist/esm/infrastructure/class/di/cache/coordinator.class.d.ts +14 -0
- package/dist/esm/infrastructure/class/di/cache/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/cache/coordinator.class.js +124 -0
- package/dist/esm/infrastructure/class/di/cache/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/captive/coordinator.class.d.ts +17 -0
- package/dist/esm/infrastructure/class/di/captive/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/captive/coordinator.class.js +60 -0
- package/dist/esm/infrastructure/class/di/captive/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/container.class.d.ts +75 -0
- package/dist/esm/infrastructure/class/di/container.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/container.class.js +630 -0
- package/dist/esm/infrastructure/class/di/container.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/disposal/coordinator.class.d.ts +34 -0
- package/dist/esm/infrastructure/class/di/disposal/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/disposal/coordinator.class.js +91 -0
- package/dist/esm/infrastructure/class/di/disposal/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/disposal/manager.class.d.ts +28 -0
- package/dist/esm/infrastructure/class/di/disposal/manager.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/disposal/manager.class.js +102 -0
- package/dist/esm/infrastructure/class/di/disposal/manager.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/disposer/coordinator.class.d.ts +41 -0
- package/dist/esm/infrastructure/class/di/disposer/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/disposer/coordinator.class.js +138 -0
- package/dist/esm/infrastructure/class/di/disposer/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/engine/resolution.class.d.ts +38 -0
- package/dist/esm/infrastructure/class/di/engine/resolution.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/engine/resolution.class.js +151 -0
- package/dist/esm/infrastructure/class/di/engine/resolution.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/graph/coordinator.class.d.ts +42 -0
- package/dist/esm/infrastructure/class/di/graph/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/graph/coordinator.class.js +119 -0
- package/dist/esm/infrastructure/class/di/graph/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/index.d.ts +3 -0
- package/dist/esm/infrastructure/class/di/index.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/interceptor/dispatcher.class.d.ts +17 -0
- package/dist/esm/infrastructure/class/di/interceptor/dispatcher.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/interceptor/dispatcher.class.js +89 -0
- package/dist/esm/infrastructure/class/di/interceptor/dispatcher.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/interface/index.d.ts +3 -0
- package/dist/esm/infrastructure/class/di/interface/index.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/interface/internal-container-options.interface.d.ts +7 -0
- package/dist/esm/infrastructure/class/di/interface/internal-container-options.interface.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/interface/provider/index.d.ts +3 -0
- package/dist/esm/infrastructure/class/di/interface/provider/index.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/interface/provider/lookup.interface.d.ts +8 -0
- package/dist/esm/infrastructure/class/di/interface/provider/lookup.interface.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/interface/provider/registration.interface.d.ts +11 -0
- package/dist/esm/infrastructure/class/di/interface/provider/registration.interface.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/lookup/coordinator.class.d.ts +10 -0
- package/dist/esm/infrastructure/class/di/lookup/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/lookup/coordinator.class.js +76 -0
- package/dist/esm/infrastructure/class/di/lookup/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/registration/coordinator.class.d.ts +41 -0
- package/dist/esm/infrastructure/class/di/registration/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/registration/coordinator.class.js +249 -0
- package/dist/esm/infrastructure/class/di/registration/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/resolution/coordinator.class.d.ts +62 -0
- package/dist/esm/infrastructure/class/di/resolution/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/resolution/coordinator.class.js +597 -0
- package/dist/esm/infrastructure/class/di/resolution/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/constant/console-logger-default-options.constant.js +4 -0
- package/dist/esm/infrastructure/constant/console-logger-default-options.constant.js.map +1 -1
- package/dist/esm/infrastructure/factory/core.factory.d.ts +11 -31
- package/dist/esm/infrastructure/factory/core.factory.d.ts.map +1 -1
- package/dist/esm/infrastructure/factory/core.factory.js +13 -47
- package/dist/esm/infrastructure/factory/core.factory.js.map +1 -1
- package/dist/esm/infrastructure/index.d.ts +1 -0
- package/dist/esm/infrastructure/index.d.ts.map +1 -1
- package/dist/esm/infrastructure/interface/base/error-options.interface.d.ts +1 -1
- package/dist/esm/infrastructure/interface/base/index.d.ts +0 -3
- package/dist/esm/infrastructure/interface/base/index.d.ts.map +1 -1
- package/dist/esm/infrastructure/interface/console-logger-options.interface.d.ts +1 -1
- package/dist/esm/infrastructure/interface/core-factory-options.interface.d.ts +1 -1
- package/dist/esm/infrastructure/interface/di-container-options.interface.d.ts +12 -0
- package/dist/esm/infrastructure/interface/di-container-options.interface.d.ts.map +1 -0
- package/dist/esm/infrastructure/interface/index.d.ts +1 -0
- package/dist/esm/infrastructure/interface/index.d.ts.map +1 -1
- package/dist/esm/infrastructure/service/console-logger.service.d.ts.map +1 -1
- package/dist/esm/infrastructure/service/console-logger.service.js +10 -6
- package/dist/esm/infrastructure/service/console-logger.service.js.map +1 -1
- package/dist/esm/infrastructure/utility/to-error.utility.d.ts +7 -0
- package/dist/esm/infrastructure/utility/to-error.utility.d.ts.map +1 -0
- package/dist/esm/infrastructure/utility/to-error.utility.js +20 -0
- package/dist/esm/infrastructure/utility/to-error.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/constant/injectable-metadata-key.constant.d.ts +2 -0
- package/dist/esm/presentation/ergonomics/constant/injectable-metadata-key.constant.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/constant/injectable-metadata-key.constant.js +4 -0
- package/dist/esm/presentation/ergonomics/constant/injectable-metadata-key.constant.js.map +1 -0
- package/dist/esm/presentation/ergonomics/constant/module-metadata-key.constant.d.ts +2 -0
- package/dist/esm/presentation/ergonomics/constant/module-metadata-key.constant.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/constant/module-metadata-key.constant.js +4 -0
- package/dist/esm/presentation/ergonomics/constant/module-metadata-key.constant.js.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/after-resolve.decorator.d.ts +6 -0
- package/dist/esm/presentation/ergonomics/decorator/after-resolve.decorator.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/after-resolve.decorator.js +39 -0
- package/dist/esm/presentation/ergonomics/decorator/after-resolve.decorator.js.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/index.d.ts +7 -0
- package/dist/esm/presentation/ergonomics/decorator/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/inject.decorator.d.ts +8 -0
- package/dist/esm/presentation/ergonomics/decorator/inject.decorator.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/inject.decorator.js +33 -0
- package/dist/esm/presentation/ergonomics/decorator/inject.decorator.js.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/injectable.decorator.d.ts +8 -0
- package/dist/esm/presentation/ergonomics/decorator/injectable.decorator.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/injectable.decorator.js +87 -0
- package/dist/esm/presentation/ergonomics/decorator/injectable.decorator.js.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/module.decorator.d.ts +8 -0
- package/dist/esm/presentation/ergonomics/decorator/module.decorator.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/module.decorator.js +141 -0
- package/dist/esm/presentation/ergonomics/decorator/module.decorator.js.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/on-dispose.decorator.d.ts +6 -0
- package/dist/esm/presentation/ergonomics/decorator/on-dispose.decorator.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/on-dispose.decorator.js +39 -0
- package/dist/esm/presentation/ergonomics/decorator/on-dispose.decorator.js.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/on-init.decorator.d.ts +6 -0
- package/dist/esm/presentation/ergonomics/decorator/on-init.decorator.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/on-init.decorator.js +39 -0
- package/dist/esm/presentation/ergonomics/decorator/on-init.decorator.js.map +1 -0
- package/dist/esm/presentation/ergonomics/index.d.ts +4 -0
- package/dist/esm/presentation/ergonomics/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/create/autowire-provider-options.interface.d.ts +12 -0
- package/dist/esm/presentation/ergonomics/interface/create/autowire-provider-options.interface.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/create/index.d.ts +3 -0
- package/dist/esm/presentation/ergonomics/interface/create/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/create/module-options.interface.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/interface/create/module-options.interface.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/decorator/index.d.ts +2 -0
- package/dist/esm/presentation/ergonomics/interface/decorator/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/decorator/module-options.interface.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/interface/decorator/module-options.interface.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/index.d.ts +4 -0
- package/dist/esm/presentation/ergonomics/interface/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/injectable/index.d.ts +3 -0
- package/dist/esm/presentation/ergonomics/interface/injectable/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/injectable/metadata.interface.d.ts +12 -0
- package/dist/esm/presentation/ergonomics/interface/injectable/metadata.interface.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/injectable/options.interface.d.ts +4 -0
- package/dist/esm/presentation/ergonomics/interface/injectable/options.interface.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/compose-decorated-modules.utility.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/utility/compose-decorated-modules.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/compose-decorated-modules.utility.js +61 -0
- package/dist/esm/presentation/ergonomics/utility/compose-decorated-modules.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/compose-modules.utility.d.ts +10 -0
- package/dist/esm/presentation/ergonomics/utility/compose-modules.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/compose-modules.utility.js +186 -0
- package/dist/esm/presentation/ergonomics/utility/compose-modules.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire-provider.utility.d.ts +14 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire-provider.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire-provider.utility.js +108 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire-provider.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire.utility.d.ts +15 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire.utility.js +32 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/index.d.ts +5 -0
- package/dist/esm/presentation/ergonomics/utility/create/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/module-from-decorator.utility.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/utility/create/module-from-decorator.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/module-from-decorator.utility.js +133 -0
- package/dist/esm/presentation/ergonomics/utility/create/module-from-decorator.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/module.utility.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/utility/create/module.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/module.utility.js +17 -0
- package/dist/esm/presentation/ergonomics/utility/create/module.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/index.d.ts +6 -0
- package/dist/esm/presentation/ergonomics/utility/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/get.utility.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/get.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/get.utility.js +18 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/get.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/index.d.ts +3 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/set.utility.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/set.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/set.utility.js +13 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/set.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/get.utility.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/get.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/get.utility.js +18 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/get.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/index.d.ts +3 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/set.utility.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/set.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/set.utility.js +13 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/set.utility.js.map +1 -0
- package/dist/esm/presentation/utility/create/di-container.utility.d.ts +9 -0
- package/dist/esm/presentation/utility/create/di-container.utility.d.ts.map +1 -0
- package/dist/esm/presentation/utility/create/di-container.utility.js +13 -0
- package/dist/esm/presentation/utility/create/di-container.utility.js.map +1 -0
- package/dist/esm/presentation/utility/create/index.d.ts +3 -3
- package/dist/esm/presentation/utility/create/index.d.ts.map +1 -1
- package/dist/esm/presentation/utility/create/lazy-provider.utility.d.ts +24 -0
- package/dist/esm/presentation/utility/create/lazy-provider.utility.d.ts.map +1 -0
- package/dist/esm/presentation/utility/create/lazy-provider.utility.js +27 -0
- package/dist/esm/presentation/utility/create/lazy-provider.utility.js.map +1 -0
- package/dist/esm/presentation/utility/create/logger.utility.d.ts +1 -1
- package/dist/esm/presentation/utility/create/logger.utility.js +1 -1
- package/dist/esm/presentation/utility/create/logger.utility.js.map +1 -1
- package/dist/esm/presentation/utility/create/token.utility.d.ts +9 -0
- package/dist/esm/presentation/utility/create/token.utility.d.ts.map +1 -0
- package/dist/esm/presentation/utility/create/token.utility.js +12 -0
- package/dist/esm/presentation/utility/create/token.utility.js.map +1 -0
- package/package.json +37 -29
- package/dist/cjs/domain/interface/container.interface.d.ts +0 -56
- package/dist/cjs/domain/interface/container.interface.d.ts.map +0 -1
- package/dist/cjs/domain/interface/factory.interface.d.ts +0 -20
- package/dist/cjs/domain/interface/factory.interface.d.ts.map +0 -1
- package/dist/cjs/domain/interface/registry.interface.d.ts +0 -55
- package/dist/cjs/domain/interface/registry.interface.d.ts.map +0 -1
- package/dist/cjs/infrastructure/class/base/container.class.d.ts +0 -68
- package/dist/cjs/infrastructure/class/base/container.class.d.ts.map +0 -1
- package/dist/cjs/infrastructure/class/base/container.class.js +0 -194
- package/dist/cjs/infrastructure/class/base/container.class.js.map +0 -1
- package/dist/cjs/infrastructure/class/base/factory.class.d.ts +0 -49
- package/dist/cjs/infrastructure/class/base/factory.class.d.ts.map +0 -1
- package/dist/cjs/infrastructure/class/base/factory.class.js +0 -88
- package/dist/cjs/infrastructure/class/base/factory.class.js.map +0 -1
- package/dist/cjs/infrastructure/class/base/registry.class.d.ts +0 -74
- package/dist/cjs/infrastructure/class/base/registry.class.d.ts.map +0 -1
- package/dist/cjs/infrastructure/class/base/registry.class.js +0 -222
- package/dist/cjs/infrastructure/class/base/registry.class.js.map +0 -1
- package/dist/cjs/infrastructure/interface/base/container-options.interface.d.ts +0 -13
- package/dist/cjs/infrastructure/interface/base/container-options.interface.d.ts.map +0 -1
- package/dist/cjs/infrastructure/interface/base/factory-options.interface.d.ts +0 -22
- package/dist/cjs/infrastructure/interface/base/factory-options.interface.d.ts.map +0 -1
- package/dist/cjs/infrastructure/interface/base/registry-options.interface.d.ts +0 -13
- package/dist/cjs/infrastructure/interface/base/registry-options.interface.d.ts.map +0 -1
- package/dist/cjs/presentation/utility/create/container.utility.d.ts +0 -10
- package/dist/cjs/presentation/utility/create/container.utility.d.ts.map +0 -1
- package/dist/cjs/presentation/utility/create/container.utility.js +0 -18
- package/dist/cjs/presentation/utility/create/container.utility.js.map +0 -1
- package/dist/cjs/presentation/utility/create/factory.utility.d.ts +0 -11
- package/dist/cjs/presentation/utility/create/factory.utility.d.ts.map +0 -1
- package/dist/cjs/presentation/utility/create/factory.utility.js +0 -19
- package/dist/cjs/presentation/utility/create/factory.utility.js.map +0 -1
- package/dist/cjs/presentation/utility/create/registry.utility.d.ts +0 -13
- package/dist/cjs/presentation/utility/create/registry.utility.d.ts.map +0 -1
- package/dist/cjs/presentation/utility/create/registry.utility.js +0 -19
- package/dist/cjs/presentation/utility/create/registry.utility.js.map +0 -1
- package/dist/esm/domain/interface/container.interface.d.ts +0 -56
- package/dist/esm/domain/interface/container.interface.d.ts.map +0 -1
- package/dist/esm/domain/interface/factory.interface.d.ts +0 -20
- package/dist/esm/domain/interface/factory.interface.d.ts.map +0 -1
- package/dist/esm/domain/interface/registry.interface.d.ts +0 -55
- package/dist/esm/domain/interface/registry.interface.d.ts.map +0 -1
- package/dist/esm/infrastructure/class/base/container.class.d.ts +0 -68
- package/dist/esm/infrastructure/class/base/container.class.d.ts.map +0 -1
- package/dist/esm/infrastructure/class/base/container.class.js +0 -192
- package/dist/esm/infrastructure/class/base/container.class.js.map +0 -1
- package/dist/esm/infrastructure/class/base/factory.class.d.ts +0 -49
- package/dist/esm/infrastructure/class/base/factory.class.d.ts.map +0 -1
- package/dist/esm/infrastructure/class/base/factory.class.js +0 -86
- package/dist/esm/infrastructure/class/base/factory.class.js.map +0 -1
- package/dist/esm/infrastructure/class/base/registry.class.d.ts +0 -74
- package/dist/esm/infrastructure/class/base/registry.class.d.ts.map +0 -1
- package/dist/esm/infrastructure/class/base/registry.class.js +0 -220
- package/dist/esm/infrastructure/class/base/registry.class.js.map +0 -1
- package/dist/esm/infrastructure/interface/base/container-options.interface.d.ts +0 -13
- package/dist/esm/infrastructure/interface/base/container-options.interface.d.ts.map +0 -1
- package/dist/esm/infrastructure/interface/base/factory-options.interface.d.ts +0 -22
- package/dist/esm/infrastructure/interface/base/factory-options.interface.d.ts.map +0 -1
- package/dist/esm/infrastructure/interface/base/registry-options.interface.d.ts +0 -13
- package/dist/esm/infrastructure/interface/base/registry-options.interface.d.ts.map +0 -1
- package/dist/esm/presentation/utility/create/container.utility.d.ts +0 -10
- package/dist/esm/presentation/utility/create/container.utility.d.ts.map +0 -1
- package/dist/esm/presentation/utility/create/container.utility.js +0 -16
- package/dist/esm/presentation/utility/create/container.utility.js.map +0 -1
- package/dist/esm/presentation/utility/create/factory.utility.d.ts +0 -11
- package/dist/esm/presentation/utility/create/factory.utility.d.ts.map +0 -1
- package/dist/esm/presentation/utility/create/factory.utility.js +0 -17
- package/dist/esm/presentation/utility/create/factory.utility.js.map +0 -1
- package/dist/esm/presentation/utility/create/registry.utility.d.ts +0 -13
- package/dist/esm/presentation/utility/create/registry.utility.d.ts.map +0 -1
- package/dist/esm/presentation/utility/create/registry.utility.js +0 -17
- package/dist/esm/presentation/utility/create/registry.utility.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"container.class.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/class/base/container.class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAW,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAKvE;;;GAGG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IAEpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC;;;OAGG;gBACS,OAAO,EAAE,qBAAqB;IAK1C;;OAEG;IACI,KAAK,IAAI,IAAI;IAMpB;;;;;OAKG;IAEI,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAoB3C;;;OAGG;IACI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;IAQ/B;;;;OAIG;IACI,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAwBlD;;;;OAIG;IACI,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAclC;;;;;OAKG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI;IAsB7D;;;;;OAKG;IAEI,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAyB1F;;;OAGG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAmBtC;;;OAGG;IACI,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;CAwBlD"}
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var error_class = require('./error.class.js');
|
|
4
|
-
var consoleLogger_service = require('../../service/console-logger.service.js');
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Simple dependency injection container implementation.
|
|
8
|
-
* @see {@link https://elsikora.com/docs/cladi/core-concepts/container}
|
|
9
|
-
*/
|
|
10
|
-
class BaseContainer {
|
|
11
|
-
DEPENDENCIES;
|
|
12
|
-
LOGGER;
|
|
13
|
-
/**
|
|
14
|
-
* Create a new container.
|
|
15
|
-
* @param {IBaseContainerOptions} options - The options to use for the container.
|
|
16
|
-
*/
|
|
17
|
-
constructor(options) {
|
|
18
|
-
this.DEPENDENCIES = new Map();
|
|
19
|
-
this.LOGGER = options.logger ?? new consoleLogger_service.ConsoleLoggerService();
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Clear all dependencies from the container.
|
|
23
|
-
*/
|
|
24
|
-
clear() {
|
|
25
|
-
this.LOGGER.debug("Clearing all dependencies from container", { source: "Container" });
|
|
26
|
-
this.DEPENDENCIES.clear();
|
|
27
|
-
this.LOGGER.debug("Container cleared successfully", { source: "Container" });
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Get a dependency from the container.
|
|
31
|
-
* @param {symbol} token Token that identifies the dependency.
|
|
32
|
-
* @returns {T | undefined} The dependency, or undefined if it doesn't exist.
|
|
33
|
-
* @template T The type of the dependency.
|
|
34
|
-
*/
|
|
35
|
-
// eslint-disable-next-line @elsikora/typescript/no-unnecessary-type-parameters
|
|
36
|
-
get(token) {
|
|
37
|
-
if (!token) {
|
|
38
|
-
this.LOGGER.warn("Attempted to get dependency with empty token", { source: "Container" });
|
|
39
|
-
return undefined;
|
|
40
|
-
}
|
|
41
|
-
this.LOGGER.debug(`Getting dependency with token: ${String(token.description)}`, { source: "Container" });
|
|
42
|
-
const dependency = this.DEPENDENCIES.get(token);
|
|
43
|
-
if (dependency) {
|
|
44
|
-
this.LOGGER.debug(`Dependency found: ${String(token.description)}`, { source: "Container" });
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
this.LOGGER.debug(`Dependency not found: ${String(token.description)}`, { source: "Container" });
|
|
48
|
-
}
|
|
49
|
-
return dependency;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Get all dependencies from the container.
|
|
53
|
-
* @returns {Array<unknown>} An array of all dependencies.
|
|
54
|
-
*/
|
|
55
|
-
getAll() {
|
|
56
|
-
this.LOGGER.debug("Getting all dependencies", { source: "Container" });
|
|
57
|
-
const dependencies = [...this.DEPENDENCIES.values()];
|
|
58
|
-
this.LOGGER.debug(`Retrieved ${String(dependencies.length)} dependencies`, { source: "Container" });
|
|
59
|
-
return dependencies;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Get multiple dependencies from the container.
|
|
63
|
-
* @param {Array<symbol>} tokens Tokens that identify the dependencies.
|
|
64
|
-
* @returns {Array<unknown>} An array of dependencies.
|
|
65
|
-
*/
|
|
66
|
-
getMany(tokens) {
|
|
67
|
-
if (!tokens) {
|
|
68
|
-
throw new error_class.BaseError("Tokens cannot be null or undefined", {
|
|
69
|
-
code: "CONTAINER_TOKENS_NOT_NULL_OR_UNDEFINED",
|
|
70
|
-
source: "Container",
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
if (!Array.isArray(tokens)) {
|
|
74
|
-
throw new error_class.BaseError("Tokens must be an array", {
|
|
75
|
-
code: "CONTAINER_TOKENS_NOT_ARRAY",
|
|
76
|
-
source: "Container",
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
this.LOGGER.debug(`Getting ${String(tokens.length)} dependencies by token`, { source: "Container" });
|
|
80
|
-
const result = tokens.map((token) => this.get(token)).filter((item) => item !== undefined);
|
|
81
|
-
this.LOGGER.debug(`Retrieved ${String(result.length)} dependencies`, { source: "Container" });
|
|
82
|
-
return result;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Check if a dependency exists in the container.
|
|
86
|
-
* @param {symbol} token Token that identifies the dependency.
|
|
87
|
-
* @returns {boolean} True if the dependency exists, false otherwise.
|
|
88
|
-
*/
|
|
89
|
-
has(token) {
|
|
90
|
-
if (!token) {
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
this.LOGGER.debug(`Checking if dependency exists: ${String(token.description)}`, { source: "Container" });
|
|
94
|
-
const isExists = this.DEPENDENCIES.has(token);
|
|
95
|
-
this.LOGGER.debug(`Dependency ${isExists ? "exists" : "does not exist"}: ${String(token.description)}`, { source: "Container" });
|
|
96
|
-
return isExists;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Register a dependency in the container.
|
|
100
|
-
* @param {symbol} token Token that identifies the dependency.
|
|
101
|
-
* @param {T} implementation Implementation of the dependency.
|
|
102
|
-
* @template T The type of the dependency.
|
|
103
|
-
*/
|
|
104
|
-
register(token, implementation) {
|
|
105
|
-
if (!token) {
|
|
106
|
-
throw new error_class.BaseError("Token cannot be null or undefined", {
|
|
107
|
-
code: "CONTAINER_TOKEN_NOT_NULL_OR_UNDEFINED",
|
|
108
|
-
source: "Container",
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
this.LOGGER.debug(`Registering dependency with token: ${String(token.description)}`, { source: "Container" });
|
|
112
|
-
if (this.has(token)) {
|
|
113
|
-
throw new error_class.BaseError("Dependency already exists in container", {
|
|
114
|
-
code: "CONTAINER_DEPENDENCY_ALREADY_EXISTS",
|
|
115
|
-
source: "Container",
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
this.DEPENDENCIES.set(token, implementation);
|
|
119
|
-
this.LOGGER.debug(`Dependency registered successfully: ${String(token.description)}`, { source: "Container" });
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Register multiple dependencies in the container.
|
|
123
|
-
* @param {Array<symbol>} tokens Tokens that identify the dependencies.
|
|
124
|
-
* @param {Array<T>} implementations Implementations of the dependencies.
|
|
125
|
-
* @template T The type of the dependencies.
|
|
126
|
-
*/
|
|
127
|
-
registerMany(tokens, implementations) {
|
|
128
|
-
if (!tokens) {
|
|
129
|
-
throw new error_class.BaseError("Tokens cannot be null or undefined", {
|
|
130
|
-
code: "CONTAINER_TOKENS_NOT_NULL_OR_UNDEFINED",
|
|
131
|
-
source: "Container",
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
if (!Array.isArray(tokens)) {
|
|
135
|
-
throw new error_class.BaseError("Tokens must be an array", {
|
|
136
|
-
code: "CONTAINER_TOKENS_NOT_ARRAY",
|
|
137
|
-
source: "Container",
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
this.LOGGER.debug(`Registering ${String(tokens.length)} dependencies`, { source: "Container" });
|
|
141
|
-
// eslint-disable-next-line @elsikora/no-secrets/no-pattern-match
|
|
142
|
-
for (const token of tokens) {
|
|
143
|
-
this.register(token, implementations[token]);
|
|
144
|
-
}
|
|
145
|
-
this.LOGGER.debug(`${String(tokens.length)} dependencies registered successfully`, { source: "Container" });
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Remove a dependency from the container.
|
|
149
|
-
* @param {symbol} token Token that identifies the dependency.
|
|
150
|
-
*/
|
|
151
|
-
unregister(token) {
|
|
152
|
-
if (!token) {
|
|
153
|
-
throw new error_class.BaseError("Token cannot be null or undefined", {
|
|
154
|
-
code: "CONTAINER_TOKEN_NOT_NULL_OR_UNDEFINED",
|
|
155
|
-
source: "Container",
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
this.LOGGER.debug(`Unregistering dependency with token: ${String(token.description)}`, { source: "Container" });
|
|
159
|
-
const wasDeleted = this.DEPENDENCIES.delete(token);
|
|
160
|
-
if (wasDeleted) {
|
|
161
|
-
this.LOGGER.debug(`Dependency unregistered successfully: ${String(token.description)}`, { source: "Container" });
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
this.LOGGER.debug(`Dependency not found for unregistering: ${String(token.description)}`, { source: "Container" });
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Remove multiple dependencies from the container.
|
|
169
|
-
* @param {Array<symbol>} tokens Tokens that identify the dependencies.
|
|
170
|
-
*/
|
|
171
|
-
unregisterMany(tokens) {
|
|
172
|
-
if (!tokens) {
|
|
173
|
-
throw new error_class.BaseError("Tokens cannot be null or undefined", {
|
|
174
|
-
code: "CONTAINER_TOKENS_NOT_NULL_OR_UNDEFINED",
|
|
175
|
-
source: "Container",
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
if (!Array.isArray(tokens)) {
|
|
179
|
-
throw new error_class.BaseError("Tokens must be an array", {
|
|
180
|
-
code: "CONTAINER_TOKENS_NOT_ARRAY",
|
|
181
|
-
source: "Container",
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
this.LOGGER.debug(`Unregistering ${String(tokens.length)} dependencies`, { source: "Container" });
|
|
185
|
-
// eslint-disable-next-line @elsikora/no-secrets/no-pattern-match
|
|
186
|
-
for (const token of tokens) {
|
|
187
|
-
this.unregister(token);
|
|
188
|
-
}
|
|
189
|
-
this.LOGGER.debug(`${String(tokens.length)} dependencies unregistered`, { source: "Container" });
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
exports.BaseContainer = BaseContainer;
|
|
194
|
-
//# sourceMappingURL=container.class.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"container.class.js","sources":["../../../../../../src/infrastructure/class/base/container.class.ts"],"sourcesContent":[null],"names":["ConsoleLoggerService","BaseError"],"mappings":"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"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { IFactory } from '../../../domain/interface/index';
|
|
2
|
-
import type { IRegistry } from '../../../domain/interface/index';
|
|
3
|
-
import type { IBaseFactoryOptions } from '../../interface/index';
|
|
4
|
-
/**
|
|
5
|
-
* Generic factory implementation that creates items by name using a registry as data source.
|
|
6
|
-
* @template T The type of items created by the factory.
|
|
7
|
-
* @see {@link https://elsikora.com/docs/cladi/core-concepts/factory}
|
|
8
|
-
*/
|
|
9
|
-
export declare class BaseFactory<T> implements IFactory<T> {
|
|
10
|
-
/**
|
|
11
|
-
* Internal cache of created items.
|
|
12
|
-
*/
|
|
13
|
-
private readonly CACHE;
|
|
14
|
-
/**
|
|
15
|
-
* Logger instance.
|
|
16
|
-
*/
|
|
17
|
-
private readonly LOGGER;
|
|
18
|
-
/**
|
|
19
|
-
* Registry instance.
|
|
20
|
-
*/
|
|
21
|
-
private readonly REGISTRY;
|
|
22
|
-
/**
|
|
23
|
-
* Optional custom transformer function.
|
|
24
|
-
*/
|
|
25
|
-
private readonly TRANSFORMER?;
|
|
26
|
-
/**
|
|
27
|
-
* Create a new factory instance.
|
|
28
|
-
* @param {IBaseFactoryOptions<T>} options Factory options.
|
|
29
|
-
*/
|
|
30
|
-
constructor(options: IBaseFactoryOptions<T>);
|
|
31
|
-
/**
|
|
32
|
-
* Clear all cached items or a specific cached item.
|
|
33
|
-
* @param {string} [name] Optional name of specific cached item to clear.
|
|
34
|
-
*/
|
|
35
|
-
clearCache(name?: string): void;
|
|
36
|
-
/**
|
|
37
|
-
* Create an item by name.
|
|
38
|
-
* @param {string} name The name of the item to create.
|
|
39
|
-
* @returns {T} The created item.
|
|
40
|
-
* @throws RegistryItemNotFoundError if no item with the given name exists in the registry.
|
|
41
|
-
*/
|
|
42
|
-
create(name: string): T;
|
|
43
|
-
/**
|
|
44
|
-
* Get the registry associated with this factory.
|
|
45
|
-
* @returns {IRegistry<T>} The registry instance.
|
|
46
|
-
*/
|
|
47
|
-
getRegistry(): IRegistry<T>;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=factory.class.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"factory.class.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/class/base/factory.class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAMrE;;;;GAIG;AACH,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,QAAQ,CAAC,CAAC,CAAC;IACjD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IAEvC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAqB;IAElD;;;OAGG;gBACS,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAO3C;;;OAGG;IACI,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAUtC;;;;;OAKG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC;IA6B9B;;;OAGG;IACI,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC;CAGlC"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var safeDeepClone_utility = require('../../../application/utility/safe-deep-clone.utility.js');
|
|
4
|
-
var error_class = require('./error.class.js');
|
|
5
|
-
var consoleLogger_service = require('../../service/console-logger.service.js');
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Generic factory implementation that creates items by name using a registry as data source.
|
|
9
|
-
* @template T The type of items created by the factory.
|
|
10
|
-
* @see {@link https://elsikora.com/docs/cladi/core-concepts/factory}
|
|
11
|
-
*/
|
|
12
|
-
class BaseFactory {
|
|
13
|
-
/**
|
|
14
|
-
* Internal cache of created items.
|
|
15
|
-
*/
|
|
16
|
-
CACHE;
|
|
17
|
-
/**
|
|
18
|
-
* Logger instance.
|
|
19
|
-
*/
|
|
20
|
-
LOGGER;
|
|
21
|
-
/**
|
|
22
|
-
* Registry instance.
|
|
23
|
-
*/
|
|
24
|
-
REGISTRY;
|
|
25
|
-
/**
|
|
26
|
-
* Optional custom transformer function.
|
|
27
|
-
*/
|
|
28
|
-
TRANSFORMER;
|
|
29
|
-
/**
|
|
30
|
-
* Create a new factory instance.
|
|
31
|
-
* @param {IBaseFactoryOptions<T>} options Factory options.
|
|
32
|
-
*/
|
|
33
|
-
constructor(options) {
|
|
34
|
-
this.CACHE = new Map();
|
|
35
|
-
this.LOGGER = options.logger ?? new consoleLogger_service.ConsoleLoggerService();
|
|
36
|
-
this.REGISTRY = options.registry;
|
|
37
|
-
this.TRANSFORMER = options.transformer;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Clear all cached items or a specific cached item.
|
|
41
|
-
* @param {string} [name] Optional name of specific cached item to clear.
|
|
42
|
-
*/
|
|
43
|
-
clearCache(name) {
|
|
44
|
-
if (name) {
|
|
45
|
-
this.CACHE.delete(name);
|
|
46
|
-
this.LOGGER.debug(`Cache cleared for item: ${name}`, { source: "Factory" });
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
this.CACHE.clear();
|
|
50
|
-
this.LOGGER.debug("Factory cache cleared", { source: "Factory" });
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Create an item by name.
|
|
55
|
-
* @param {string} name The name of the item to create.
|
|
56
|
-
* @returns {T} The created item.
|
|
57
|
-
* @throws RegistryItemNotFoundError if no item with the given name exists in the registry.
|
|
58
|
-
*/
|
|
59
|
-
create(name) {
|
|
60
|
-
this.LOGGER.debug(`Creating item: ${name}`, { source: "Factory" });
|
|
61
|
-
const cachedItem = this.CACHE.get(name);
|
|
62
|
-
if (cachedItem) {
|
|
63
|
-
this.LOGGER.debug(`Retrieved item from cache: ${name}`, { source: "Factory" });
|
|
64
|
-
return safeDeepClone_utility.safeDeepClone(cachedItem);
|
|
65
|
-
}
|
|
66
|
-
const template = this.REGISTRY.get(name);
|
|
67
|
-
if (!template) {
|
|
68
|
-
throw new error_class.BaseError("Template not found", {
|
|
69
|
-
code: "TEMPLATE_NOT_FOUND",
|
|
70
|
-
source: "Factory",
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
const result = this.TRANSFORMER ? this.TRANSFORMER(template) : safeDeepClone_utility.safeDeepClone(template);
|
|
74
|
-
this.CACHE.set(name, result);
|
|
75
|
-
this.LOGGER.debug(`Created item: ${name}`, { source: "Factory" });
|
|
76
|
-
return safeDeepClone_utility.safeDeepClone(result);
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Get the registry associated with this factory.
|
|
80
|
-
* @returns {IRegistry<T>} The registry instance.
|
|
81
|
-
*/
|
|
82
|
-
getRegistry() {
|
|
83
|
-
return this.REGISTRY;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
exports.BaseFactory = BaseFactory;
|
|
88
|
-
//# sourceMappingURL=factory.class.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"factory.class.js","sources":["../../../../../../src/infrastructure/class/base/factory.class.ts"],"sourcesContent":[null],"names":["ConsoleLoggerService","safeDeepClone","BaseError"],"mappings":";;;;;;AASA;;;;AAIG;MACU,WAAW,CAAA;AACvB;;AAEG;AACc,IAAA,KAAK;AAEtB;;AAEG;AACc,IAAA,MAAM;AAEvB;;AAEG;AACc,IAAA,QAAQ;AAEzB;;AAEG;AACc,IAAA,WAAW;AAE5B;;;AAGG;AACH,IAAA,WAAA,CAAY,OAA+B,EAAA;AAC1C,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAa;QACjC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAIA,0CAAoB,EAAE;AAC1D,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;;AAGvC;;;AAGG;AACI,IAAA,UAAU,CAAC,IAAa,EAAA;QAC9B,IAAI,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAA2B,wBAAA,EAAA,IAAI,CAAE,CAAA,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;;aACrE;AACN,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAClB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;;;AAInE;;;;;AAKG;AACI,IAAA,MAAM,CAAC,IAAY,EAAA;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAkB,eAAA,EAAA,IAAI,CAAE,CAAA,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAElE,MAAM,UAAU,GAAkB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAEtD,IAAI,UAAU,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAA8B,2BAAA,EAAA,IAAI,CAAE,CAAA,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAE9E,YAAA,OAAOC,mCAAa,CAAC,UAAU,CAAC;;QAGjC,MAAM,QAAQ,GAAkB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QAEvD,IAAI,CAAC,QAAQ,EAAE;AACd,YAAA,MAAM,IAAIC,qBAAS,CAAC,oBAAoB,EAAE;AACzC,gBAAA,IAAI,EAAE,oBAAoB;AAC1B,gBAAA,MAAM,EAAE,SAAS;AACjB,aAAA,CAAC;;QAGH,MAAM,MAAM,GAAM,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAGD,mCAAa,CAAC,QAAQ,CAAC;QAEzF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAE5B,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAiB,cAAA,EAAA,IAAI,CAAE,CAAA,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAEjE,QAAA,OAAOA,mCAAa,CAAC,MAAM,CAAC;;AAG7B;;;AAGG;IACI,WAAW,GAAA;QACjB,OAAO,IAAI,CAAC,QAAQ;;AAErB;;;;"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import type { IRegistry } from '../../../domain/interface/index';
|
|
2
|
-
import type { IBaseRegistryOptions } from '../../interface/index';
|
|
3
|
-
/**
|
|
4
|
-
* Generic registry implementation that stores items by name.
|
|
5
|
-
* @template T The type of items stored in the registry.
|
|
6
|
-
* @see {@link https://elsikora.com/docs/cladi/core-concepts/registry}
|
|
7
|
-
*/
|
|
8
|
-
export declare class BaseRegistry<T extends {
|
|
9
|
-
getName(): string;
|
|
10
|
-
}> implements IRegistry<T> {
|
|
11
|
-
private readonly CACHE;
|
|
12
|
-
private readonly ITEMS;
|
|
13
|
-
private readonly LOGGER;
|
|
14
|
-
/**
|
|
15
|
-
* Creates a new registry instance.
|
|
16
|
-
* @param {IBaseRegistryOptions} options Registry creation options including logger.
|
|
17
|
-
*/
|
|
18
|
-
constructor(options: IBaseRegistryOptions);
|
|
19
|
-
/**
|
|
20
|
-
* Clear the registry.
|
|
21
|
-
*/
|
|
22
|
-
clear(): void;
|
|
23
|
-
/**
|
|
24
|
-
* Get a single item from the registry by name.
|
|
25
|
-
* @param {string} name The name of the item to get.
|
|
26
|
-
* @returns {T | undefined} The item or undefined if it doesn't exist.
|
|
27
|
-
*/
|
|
28
|
-
get(name: string): T | undefined;
|
|
29
|
-
/**
|
|
30
|
-
* Get all items from the registry.
|
|
31
|
-
* @returns {Array<T>} An array of all items.
|
|
32
|
-
*/
|
|
33
|
-
getAll(): Array<T>;
|
|
34
|
-
/**
|
|
35
|
-
* Get multiple items from the registry by their names.
|
|
36
|
-
* @param {Array<string>} names The names of the items to get.
|
|
37
|
-
* @returns {Array<T>} An array of items.
|
|
38
|
-
*/
|
|
39
|
-
getMany(names: Array<string>): Array<T>;
|
|
40
|
-
/**
|
|
41
|
-
* Check if an item exists in the registry by name.
|
|
42
|
-
* @param {string} name The name of the item to check.
|
|
43
|
-
* @returns {boolean} True if the item exists, false otherwise.
|
|
44
|
-
*/
|
|
45
|
-
has(name: string): boolean;
|
|
46
|
-
/**
|
|
47
|
-
* Register a single item in the registry.
|
|
48
|
-
* @param {T} item The item to register.
|
|
49
|
-
* @throws ValidationError if the item is invalid.
|
|
50
|
-
*/
|
|
51
|
-
register(item: T): void;
|
|
52
|
-
/**
|
|
53
|
-
* Register multiple items in the registry.
|
|
54
|
-
* @param {Array<T>} items The items to register.
|
|
55
|
-
* @throws ValidationError if any item is invalid.
|
|
56
|
-
*/
|
|
57
|
-
registerMany(items: Array<T>): void;
|
|
58
|
-
/**
|
|
59
|
-
* Unregister a single item from the registry by name.
|
|
60
|
-
* @param {string} name The name of the item to unregister.
|
|
61
|
-
*/
|
|
62
|
-
unregister(name: string): void;
|
|
63
|
-
/**
|
|
64
|
-
* Unregister multiple items from the registry by their names.
|
|
65
|
-
* @param {Array<string>} names The names of the items to unregister.
|
|
66
|
-
*/
|
|
67
|
-
unregisterMany(names: Array<string>): void;
|
|
68
|
-
/**
|
|
69
|
-
* Clear the cache for a specific query or all caches if no query is provided.
|
|
70
|
-
* @param {string} [cacheKey] Optional cache key to clear. If not provided, all caches are cleared.
|
|
71
|
-
*/
|
|
72
|
-
private clearCache;
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=registry.class.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.class.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/class/base/registry.class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAKtE;;;;GAIG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS;IAAE,OAAO,IAAI,MAAM,CAAA;CAAE,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAE9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IAEvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC;;;OAGG;gBACS,OAAO,EAAE,oBAAoB;IAMzC;;OAEG;IACI,KAAK,IAAI,IAAI;IASpB;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAoBvC;;;OAGG;IACI,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC;IAoBzB;;;;OAIG;IACI,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAkC9C;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAcjC;;;;OAIG;IACI,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAwB9B;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;IAwB1C;;;OAGG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAqBrC;;;OAGG;IACI,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;IAwBjD;;;OAGG;IACH,OAAO,CAAC,UAAU;CASlB"}
|
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var error_class = require('./error.class.js');
|
|
4
|
-
var consoleLogger_service = require('../../service/console-logger.service.js');
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Generic registry implementation that stores items by name.
|
|
8
|
-
* @template T The type of items stored in the registry.
|
|
9
|
-
* @see {@link https://elsikora.com/docs/cladi/core-concepts/registry}
|
|
10
|
-
*/
|
|
11
|
-
class BaseRegistry {
|
|
12
|
-
CACHE;
|
|
13
|
-
ITEMS;
|
|
14
|
-
LOGGER;
|
|
15
|
-
/**
|
|
16
|
-
* Creates a new registry instance.
|
|
17
|
-
* @param {IBaseRegistryOptions} options Registry creation options including logger.
|
|
18
|
-
*/
|
|
19
|
-
constructor(options) {
|
|
20
|
-
this.ITEMS = new Map();
|
|
21
|
-
this.CACHE = new Map();
|
|
22
|
-
this.LOGGER = options.logger ?? new consoleLogger_service.ConsoleLoggerService();
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Clear the registry.
|
|
26
|
-
*/
|
|
27
|
-
clear() {
|
|
28
|
-
this.LOGGER.debug("Clearing registry", { source: "Registry" });
|
|
29
|
-
this.ITEMS.clear();
|
|
30
|
-
this.clearCache();
|
|
31
|
-
this.LOGGER.debug("Registry cleared", { source: "Registry" });
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Get a single item from the registry by name.
|
|
35
|
-
* @param {string} name The name of the item to get.
|
|
36
|
-
* @returns {T | undefined} The item or undefined if it doesn't exist.
|
|
37
|
-
*/
|
|
38
|
-
get(name) {
|
|
39
|
-
this.LOGGER.debug(`Getting item with name: ${name}`, { source: "Registry" });
|
|
40
|
-
if (!name) {
|
|
41
|
-
this.LOGGER.warn("Attempted to get item with empty name", { source: "Registry" });
|
|
42
|
-
return undefined;
|
|
43
|
-
}
|
|
44
|
-
const item = this.ITEMS.get(name);
|
|
45
|
-
if (item) {
|
|
46
|
-
this.LOGGER.debug(`Item found: ${name}`, { source: "Registry" });
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
this.LOGGER.debug(`Item not found: ${name}`, { source: "Registry" });
|
|
50
|
-
}
|
|
51
|
-
return item;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Get all items from the registry.
|
|
55
|
-
* @returns {Array<T>} An array of all items.
|
|
56
|
-
*/
|
|
57
|
-
getAll() {
|
|
58
|
-
this.LOGGER.debug("Getting all items", { source: "Registry" });
|
|
59
|
-
const cacheKey = "getAll";
|
|
60
|
-
const cachedResult = this.CACHE.get(cacheKey);
|
|
61
|
-
if (cachedResult) {
|
|
62
|
-
this.LOGGER.debug("Cache hit for getAll query", { source: "Registry" });
|
|
63
|
-
return cachedResult;
|
|
64
|
-
}
|
|
65
|
-
const result = [...this.ITEMS.values()];
|
|
66
|
-
this.CACHE.set(cacheKey, result);
|
|
67
|
-
this.LOGGER.debug(`Cached result for getAll query with ${String(result.length)} items`, { source: "Registry" });
|
|
68
|
-
return result;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Get multiple items from the registry by their names.
|
|
72
|
-
* @param {Array<string>} names The names of the items to get.
|
|
73
|
-
* @returns {Array<T>} An array of items.
|
|
74
|
-
*/
|
|
75
|
-
getMany(names) {
|
|
76
|
-
if (!names) {
|
|
77
|
-
throw new error_class.BaseError("Names cannot be null or undefined", {
|
|
78
|
-
code: "REGISTRY_NAMES_NOT_NULL_OR_UNDEFINED",
|
|
79
|
-
source: "Registry",
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
if (!Array.isArray(names)) {
|
|
83
|
-
throw new error_class.BaseError("Names must be an array", {
|
|
84
|
-
code: "REGISTRY_NAMES_NOT_ARRAY",
|
|
85
|
-
source: "Registry",
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
this.LOGGER.debug(`Getting ${String(names.length)} items by name`, { source: "Registry" });
|
|
89
|
-
const cacheKey = `getMany:${names.join(",")}`;
|
|
90
|
-
const cachedResult = this.CACHE.get(cacheKey);
|
|
91
|
-
if (cachedResult) {
|
|
92
|
-
this.LOGGER.debug(`Cache hit for query: ${cacheKey}`, { source: "Registry" });
|
|
93
|
-
return cachedResult;
|
|
94
|
-
}
|
|
95
|
-
const result = names.map((name) => this.get(name)).filter((item) => item !== undefined);
|
|
96
|
-
this.CACHE.set(cacheKey, result);
|
|
97
|
-
this.LOGGER.debug(`Cached result for query: ${cacheKey}`, { source: "Registry" });
|
|
98
|
-
return result;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Check if an item exists in the registry by name.
|
|
102
|
-
* @param {string} name The name of the item to check.
|
|
103
|
-
* @returns {boolean} True if the item exists, false otherwise.
|
|
104
|
-
*/
|
|
105
|
-
has(name) {
|
|
106
|
-
this.LOGGER.debug(`Checking if item exists: ${name}`, { source: "Registry" });
|
|
107
|
-
if (!name) {
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
const isExisting = this.ITEMS.has(name);
|
|
111
|
-
this.LOGGER.debug(`Item ${isExisting ? "exists" : "does not exist"}: ${name}`, { source: "Registry" });
|
|
112
|
-
return isExisting;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Register a single item in the registry.
|
|
116
|
-
* @param {T} item The item to register.
|
|
117
|
-
* @throws ValidationError if the item is invalid.
|
|
118
|
-
*/
|
|
119
|
-
register(item) {
|
|
120
|
-
if (!item) {
|
|
121
|
-
throw new error_class.BaseError("Item cannot be null or undefined", {
|
|
122
|
-
code: "REGISTRY_ITEM_NOT_NULL_OR_UNDEFINED",
|
|
123
|
-
source: "Registry",
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
this.LOGGER.debug(`Registering item with name: ${item.getName()}`, { source: "Registry" });
|
|
127
|
-
if (this.has(item.getName())) {
|
|
128
|
-
throw new error_class.BaseError("Item already exists in registry", {
|
|
129
|
-
code: "REGISTRY_ITEM_ALREADY_EXISTS",
|
|
130
|
-
source: "Registry",
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
this.ITEMS.set(item.getName(), item);
|
|
134
|
-
this.clearCache();
|
|
135
|
-
this.LOGGER.debug(`Item registered successfully: ${item.getName()}`, { source: "Registry" });
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Register multiple items in the registry.
|
|
139
|
-
* @param {Array<T>} items The items to register.
|
|
140
|
-
* @throws ValidationError if any item is invalid.
|
|
141
|
-
*/
|
|
142
|
-
registerMany(items) {
|
|
143
|
-
if (!items) {
|
|
144
|
-
throw new error_class.BaseError("Items cannot be null or undefined", {
|
|
145
|
-
code: "REGISTRY_ITEMS_NOT_NULL_OR_UNDEFINED",
|
|
146
|
-
source: "Registry",
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
if (!Array.isArray(items)) {
|
|
150
|
-
throw new error_class.BaseError("Items must be an array", {
|
|
151
|
-
code: "REGISTRY_ITEMS_NOT_ARRAY",
|
|
152
|
-
source: "Registry",
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
this.LOGGER.debug(`Registering ${String(items.length)} items`, { source: "Registry" });
|
|
156
|
-
for (const item of items) {
|
|
157
|
-
this.register(item);
|
|
158
|
-
}
|
|
159
|
-
this.LOGGER.debug(`${String(items.length)} items registered successfully`, { source: "Registry" });
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Unregister a single item from the registry by name.
|
|
163
|
-
* @param {string} name The name of the item to unregister.
|
|
164
|
-
*/
|
|
165
|
-
unregister(name) {
|
|
166
|
-
this.LOGGER.debug(`Unregistering item with name: ${name}`, { source: "Registry" });
|
|
167
|
-
if (!name) {
|
|
168
|
-
throw new error_class.BaseError("Name cannot be empty", {
|
|
169
|
-
code: "REGISTRY_NAME_NOT_EMPTY",
|
|
170
|
-
source: "Registry",
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
const wasDeleted = this.ITEMS.delete(name);
|
|
174
|
-
this.clearCache();
|
|
175
|
-
if (wasDeleted) {
|
|
176
|
-
this.LOGGER.debug(`Item unregistered successfully: ${name}`, { source: "Registry" });
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
this.LOGGER.debug(`Item not found for unregistering: ${name}`, { source: "Registry" });
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Unregister multiple items from the registry by their names.
|
|
184
|
-
* @param {Array<string>} names The names of the items to unregister.
|
|
185
|
-
*/
|
|
186
|
-
unregisterMany(names) {
|
|
187
|
-
if (!names) {
|
|
188
|
-
throw new error_class.BaseError("Names cannot be null or undefined", {
|
|
189
|
-
code: "REGISTRY_NAMES_NOT_NULL_OR_UNDEFINED",
|
|
190
|
-
source: "Registry",
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
if (!Array.isArray(names)) {
|
|
194
|
-
throw new error_class.BaseError("Names must be an array", {
|
|
195
|
-
code: "REGISTRY_NAMES_NOT_ARRAY",
|
|
196
|
-
source: "Registry",
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
this.LOGGER.debug(`Unregistering ${String(names.length)} items`, { source: "Registry" });
|
|
200
|
-
for (const name of names) {
|
|
201
|
-
this.unregister(name);
|
|
202
|
-
}
|
|
203
|
-
this.LOGGER.debug(`${String(names.length)} items unregistered`, { source: "Registry" });
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Clear the cache for a specific query or all caches if no query is provided.
|
|
207
|
-
* @param {string} [cacheKey] Optional cache key to clear. If not provided, all caches are cleared.
|
|
208
|
-
*/
|
|
209
|
-
clearCache(cacheKey) {
|
|
210
|
-
if (cacheKey) {
|
|
211
|
-
this.CACHE.delete(cacheKey);
|
|
212
|
-
this.LOGGER.debug(`Cache cleared for key: ${cacheKey}`, { source: "Registry" });
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
this.CACHE.clear();
|
|
216
|
-
this.LOGGER.debug("All caches cleared", { source: "Registry" });
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
exports.BaseRegistry = BaseRegistry;
|
|
222
|
-
//# sourceMappingURL=registry.class.js.map
|