/** * In place remove */ export function removeUndefined>( obj: T, recursive = false ): T { for (const k in obj) { if (obj[k] === undefined) { delete obj[k]; continue; } if (recursive && isPlainObject(obj[k])) { obj[k] = removeUndefined(obj[k], recursive); } } return obj; } function isPlainObject(value: unknown): value is Record { return ( typeof value === "object" && value !== null && value.constructor === Object ); }