Files
wdi-dashboard/node_modules/@chakra-ui/utils/dist/walk-object.d.ts
2024-08-16 15:06:52 +05:30

8 lines
575 B
TypeScript

declare type WalkObjectPredicate<Leaf = unknown> = (value: unknown, path: string[]) => Leaf;
declare type MappedLeavesObject<Obj, LeafType> = {
[Prop in keyof Obj]: Obj[Prop] extends Array<any> ? MappedLeavesObject<Obj[Prop][number], LeafType>[] : Obj[Prop] extends object ? MappedLeavesObject<Obj[Prop], LeafType> : LeafType;
};
declare function walkObject<Target, LeafType>(target: Target, predicate: WalkObjectPredicate<LeafType>): MappedLeavesObject<Target, ReturnType<WalkObjectPredicate<LeafType>>>;
export { MappedLeavesObject, WalkObjectPredicate, walkObject };