@inversifyjs/core
Version:
InversifyJs core package
30 lines • 1.47 kB
JavaScript
import { isPromise } from '@inversifyjs/common';
export function resolveBindingServiceDeactivations(params, serviceIdentifier, value) {
const deactivations = params.getDeactivations(serviceIdentifier);
if (deactivations === undefined) {
return undefined;
}
if (isPromise(value)) {
return resolveBindingDeactivationsFromIteratorAsync(value, deactivations[Symbol.iterator]());
}
return resolveBindingDeactivationsFromIterator(value, deactivations[Symbol.iterator]());
}
function resolveBindingDeactivationsFromIterator(value, deactivationsIterator) {
let deactivationIteratorResult = deactivationsIterator.next();
while (deactivationIteratorResult.done !== true) {
const nextDeactivationValue = deactivationIteratorResult.value(value);
if (isPromise(nextDeactivationValue)) {
return resolveBindingDeactivationsFromIteratorAsync(value, deactivationsIterator);
}
deactivationIteratorResult = deactivationsIterator.next();
}
}
async function resolveBindingDeactivationsFromIteratorAsync(value, deactivationsIterator) {
const resolvedValue = await value;
let deactivationIteratorResult = deactivationsIterator.next();
while (deactivationIteratorResult.done !== true) {
await deactivationIteratorResult.value(resolvedValue);
deactivationIteratorResult = deactivationsIterator.next();
}
}
//# sourceMappingURL=resolveBindingServiceDeactivations.js.map