@inversifyjs/core
Version:
InversifyJs core package
32 lines • 1.33 kB
JavaScript
import { isScopedBinding } from '../../binding/calculations/isScopedBinding.js';
import { bindingScopeValues } from '../../binding/models/BindingScope.js';
import { resolveBindingDeactivations } from './resolveBindingDeactivations.js';
const CACHE_KEY_TYPE = 'cache';
export function resolveBindingsDeactivations(params, bindings) {
if (bindings === undefined) {
return;
}
const singletonScopedBindings = filterCachedSinglentonScopedBindings(bindings);
const deactivationPromiseResults = [];
for (const binding of singletonScopedBindings) {
const deactivationResult = resolveBindingDeactivations(params, binding);
if (deactivationResult !== undefined) {
deactivationPromiseResults.push(deactivationResult);
}
}
if (deactivationPromiseResults.length > 0) {
return Promise.all(deactivationPromiseResults).then(() => undefined);
}
}
function filterCachedSinglentonScopedBindings(bindings) {
const filteredBindings = [];
for (const binding of bindings) {
if (isScopedBinding(binding) &&
binding.scope === bindingScopeValues.Singleton &&
binding.cache.isRight) {
filteredBindings.push(binding);
}
}
return filteredBindings;
}
//# sourceMappingURL=resolveBindingsDeactivations.js.map