@inversifyjs/core
Version:
InversifyJs core package
31 lines • 1.41 kB
JavaScript
import { bindingTypeValues } from '../models/BindingType.js';
import { cloneConstantValueBinding } from './cloneConstantValueBinding.js';
import { cloneDynamicValueBinding } from './cloneDynamicValueBinding.js';
import { cloneFactoryBinding } from './cloneFactoryBinding.js';
import { cloneInstanceBinding } from './cloneInstanceBinding.js';
import { cloneResolvedValueBinding } from './cloneResolvedValueBinding.js';
import { cloneServiceRedirectionBinding } from './cloneServiceRedirectionBinding.js';
/**
* Creates a deep clone of a binding.
*
* @param binding - The binding to clone
* @returns A clone of the binding
*/
export function cloneBinding(binding) {
// Switch based on binding type to delegate to specific clone functions
switch (binding.type) {
case bindingTypeValues.ConstantValue:
return cloneConstantValueBinding(binding);
case bindingTypeValues.DynamicValue:
return cloneDynamicValueBinding(binding);
case bindingTypeValues.Factory:
return cloneFactoryBinding(binding);
case bindingTypeValues.Instance:
return cloneInstanceBinding(binding);
case bindingTypeValues.ResolvedValue:
return cloneResolvedValueBinding(binding);
case bindingTypeValues.ServiceRedirection:
return cloneServiceRedirectionBinding(binding);
}
}
//# sourceMappingURL=cloneBinding.js.map