UNPKG

@inversifyjs/core

Version:

InversifyJs core package

28 lines 1.34 kB
import { bindingScopeValues, } from '../../binding/models/BindingScope.js'; import { cacheResolvedValue } from './cacheResolvedValue.js'; import { resolveBindingActivations } from './resolveBindingActivations.js'; export function resolveScoped(getBinding, resolve) { return (params, arg) => { const binding = getBinding(arg); switch (binding.scope) { case bindingScopeValues.Singleton: { if (binding.cache.isRight) { return binding.cache.value; } const resolvedValue = resolveBindingActivations(params, binding, resolve(params, arg)); return cacheResolvedValue(binding, resolvedValue); } case bindingScopeValues.Request: { if (params.requestScopeCache.has(binding.id)) { return params.requestScopeCache.get(binding.id); } const resolvedValue = resolveBindingActivations(params, binding, resolve(params, arg)); params.requestScopeCache.set(binding.id, resolvedValue); return resolvedValue; } case bindingScopeValues.Transient: return resolveBindingActivations(params, binding, resolve(params, arg)); } }; } //# sourceMappingURL=resolveScoped.js.map