UNPKG

@inversifyjs/core

Version:

InversifyJs core package

36 lines 1.68 kB
import { isPromise } from '@inversifyjs/common'; export function resolveBindingServiceActivations(params, serviceIdentifier, value) { const activations = params.getActivations(serviceIdentifier); if (activations === undefined) { return value; } if (isPromise(value)) { return resolveBindingActivationsFromIteratorAsync(params, value, activations[Symbol.iterator]()); } return resolveBindingActivationsFromIterator(params, value, activations[Symbol.iterator]()); } function resolveBindingActivationsFromIterator(params, value, activationsIterator) { let activatedValue = value; let activationIteratorResult = activationsIterator.next(); while (activationIteratorResult.done !== true) { const nextActivatedValue = activationIteratorResult.value(params.context, activatedValue); if (isPromise(nextActivatedValue)) { return resolveBindingActivationsFromIteratorAsync(params, nextActivatedValue, activationsIterator); } else { activatedValue = nextActivatedValue; } activationIteratorResult = activationsIterator.next(); } return activatedValue; } async function resolveBindingActivationsFromIteratorAsync(params, value, activationsIterator) { let activatedValue = await value; let activationIteratorResult = activationsIterator.next(); while (activationIteratorResult.done !== true) { activatedValue = await activationIteratorResult.value(params.context, activatedValue); activationIteratorResult = activationsIterator.next(); } return activatedValue; } //# sourceMappingURL=resolveBindingServiceActivations.js.map