UNPKG

@nex-ui/utils

Version:

Utility functions for React components.

14 lines (12 loc) 652 B
type Callback<R = any> = (value: any, path: string[]) => R; type MappedObject<T, K> = { [Prop in keyof T]: T[Prop] extends Array<any> ? MappedObject<T[Prop][number], K>[] : T[Prop] extends Record<string, unknown> ? MappedObject<T[Prop], K> : K; }; type PredicateFn = (value: any, path: string[]) => boolean; interface WalkObjectOptions { predicate?: PredicateFn; getKey?(prop: string, value: any): string | undefined; } declare function walkObject<T, K>(target: T, fn: Callback<K>, options?: WalkObjectOptions): MappedObject<T, ReturnType<Callback<K>>>; export { walkObject }; export type { MappedObject, PredicateFn, WalkObjectOptions };