import { hasFromObject } from './hasFromObject'; /** * A semi-complex function to manipulate and delete paths in objects. * @deprecated * @since 1.0.0 * @param input The input object to manipulate. * @param path An array of strings forming a path. * @returns The manipulated input object. */ export function deleteFromObject(input: Input, path: string[]): Output { if (!path.length) return input as unknown as Output; if (!hasFromObject(input, path)) return input as unknown as Output; path.reduce>( (previousStep, step, index) => { if (typeof previousStep !== 'object') previousStep = {}; if (index === path.length - 1) Reflect.deleteProperty(previousStep, step); return previousStep[step]; }, typeof input === 'object' ? input ?? {} : {} ); return input as unknown as Output; }