@inversifyjs/core
Inversify monorepo core modules.
InversifyJs core package
Factory to allow async functions.FactoryBinding.factory to allow async factory builders.ClassMetadata.lifecycle to allow multiple preDestroy and postConstruct methodsProvider type. Use Factory instead. Providers will be removed in v8. Providers exist for historical reasons from v5 when async dependencies weren't supported. Factories are more flexible and can handle both sync and async operations.BindingService with autobind optionsBasePlanParamsAutobindOptions to AutobindOptionsdecorate to allow method param decorationinjectFromHierarchy to ignore Object in prototype traversal, preventing missing metadata errors when extending undecorated Object.injectFromHierachyresolve to handle circular dependenciesaddServiceNodeBindingIfContextFree to handle stack overflow errorsPlanResultCacheService.invalidateService in favor of invalidateServiceBindingPlanParamsOperations with contextNonCachedServiceNodeContextBindingService, ActivationsService and DeactivationsService to receive a getParent param. This way restoring a parent container no longer leads to invalid parent referencesPlanServiceNode with no parentBaseBindingNode with no parentBasePlanParams without methods in favor of an operations propertyBasePlanParams with setPlanPlanResultCacheService with invalidateServicePlanServiceNode objectsBasePlanParams with getPlanGetPlanOptions with chained propertyPlanServiceNode.bindings to no longer be readonlyPlanResultCacheService to avoid collisions with chained service related planschained propertyBindingService with getChainedmultiInject with optional MultiInjectOptionsBindingService with getBoundServices5d8c35d: Fixed child container memory leak in most cases
Provided that there is a job in the event loop after constructing a child container, its cache service will eventually be garbage collected along with the child container itself, rather than persisting until the parent container's garbage collection.
edbefaa: Updated BindingService.clone to properly clone bindings.
getBindingIdresolve to set class metadata scope bindings when autobind options are setBindingService with removeByIdBindingService with getByIdresolveBindingsDeactivationsBasePlanParams.servicesBranch to be an arrayplan to no longer provide false positive circular dependenciescacheResolvedValue to set promise like cache values until promise is fullfilledBindingMetadata to BindingConstraintsResolvedValueMetadataPlanServiceNodeParent to include ResolvedValueBindingNodeResolvedValueBindingResolvedValueBindingNodePlanResultCacheServiceGetOptions with autobindOneToManyMapStar.clone to properly clone map array valuesinjectBase default values to be trueBindToFluentSyntaxImplementation.toDynamicValue with right default scopeunmanaged to support method decorationinject to support method decorationoptional to support method decorationnamed to support method decorationtagged to support method decorationmultiInject to support method decorationOneToManyMapStar to fix an issue involving a deletion use caseDeactivationService to allow duplicated deactivationsActivationService to allow duplicated activationsMaybeClassElementMetadataKind values to avoid collisionsMetadataTargetNameManagedClassElementMetadata with no targetNameMaybeManagedClassElementMetadata with no targetNametargetNameBindingService with getNonParentBindingsBindingToSyntax with more flexible factory and provider constraintsProvider with right args.BindingService with getNonParentBoundServicesinjectFromBase options to be optional.injectable to filter out non userland emitted metadataResolutionContext paraminjectable to throw on duplicated calltargetName decoratorLegacyQueryableStringBindToFluentSyntaxImplementation.to to set binding scope if found in class metadataLegacyTarget.LegacyMetadata.getClassMetadataFromMetadataReader.BindingService.remove to removeAllByServiceId.getClassMetadata to no longer rely on legacy reflected metadatagetTargets.LegacyMetadataReader.resolveModuleDeactivations.BindingMetadata with serviceIdentifier and getAncestor.Binding.optional.multiInject.ManagedClassElementMetadata with isFromTypescriptParamType.decorate.resolve.named.resolveServiceDeactivations.ActivationService.plan.postConstruct.unmanaged.DeactivationsService.tagged.injectFromBase.ClassMetadata with scope.BindingService.inject.preDestroy.injectable.getClassMetadata with missing constructor arguments lenght validationActivationService.get to provide missing parent activationsLegacyTargetImpl.getClassElementMetadataFromLegacyMetadata.LegacyTarget model.getTargets.getClassMetadataFromMetadataReader.getClassMetadata to correctly fetch name and target namesClassMetadata.getClassMetadata.