import { getServiceIdentifierAsString } from "../inversify";
|
import * as ERROR_MSGS from "../constants/error_msgs";
|
import { BindingTypeEnum } from "../constants/literal_types";
|
import { FactoryType } from "./factory_type";
|
export var multiBindToService = function (container) {
|
return function (service) {
|
return function () {
|
var types = [];
|
for (var _i = 0; _i < arguments.length; _i++) {
|
types[_i] = arguments[_i];
|
}
|
return types.forEach(function (t) { return container.bind(t).toService(service); });
|
};
|
};
|
};
|
export var ensureFullyBound = function (binding) {
|
var boundValue = null;
|
switch (binding.type) {
|
case BindingTypeEnum.ConstantValue:
|
case BindingTypeEnum.Function:
|
boundValue = binding.cache;
|
break;
|
case BindingTypeEnum.Constructor:
|
case BindingTypeEnum.Instance:
|
boundValue = binding.implementationType;
|
break;
|
case BindingTypeEnum.DynamicValue:
|
boundValue = binding.dynamicValue;
|
break;
|
case BindingTypeEnum.Provider:
|
boundValue = binding.provider;
|
break;
|
case BindingTypeEnum.Factory:
|
boundValue = binding.factory;
|
break;
|
}
|
if (boundValue === null) {
|
var serviceIdentifierAsString = getServiceIdentifierAsString(binding.serviceIdentifier);
|
throw new Error(ERROR_MSGS.INVALID_BINDING_TYPE + " " + serviceIdentifierAsString);
|
}
|
};
|
export var getFactoryDetails = function (binding) {
|
switch (binding.type) {
|
case BindingTypeEnum.Factory:
|
return { factory: binding.factory, factoryType: FactoryType.Factory };
|
case BindingTypeEnum.Provider:
|
return { factory: binding.provider, factoryType: FactoryType.Provider };
|
case BindingTypeEnum.DynamicValue:
|
return { factory: binding.dynamicValue, factoryType: FactoryType.DynamicValue };
|
default:
|
throw new Error("Unexpected factory type " + binding.type);
|
}
|
};
|
//# sourceMappingURL=binding_utils.js.map
|