trim-obj
Version:
Recursively trim object values
18 lines (15 loc) • 413 B
text/typescript
import mapObj from "map-obj";
const trimValue = (value: unknown) =>
typeof value === "string" ? value.trim() : value;
export const trimObj = <T extends object>(object: T): T =>
mapObj(
object,
// @ts-ignore
(key, value) => {
if (Array.isArray(value)) {
return [key, value.map((v) => trimValue(v))];
}
return [key, trimValue(value)];
},
{ deep: true }
) as T;