@nex-ui/utils
Version:
Utility functions for React components.
14 lines (12 loc) • 652 B
TypeScript
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 };