Files
meshtastic-web/packages/web/src/core/utils/dotPath.ts
T

17 lines
492 B
TypeScript

export type DotPath = { [key: string]: unknown } | unknown[];
export const dotPaths = <T extends DotPath>(obj: T, prefix = ""): string[] => {
if (Array.isArray(obj)) {
return obj.flatMap((v, i) =>
v && typeof v === "object"
? dotPaths(v as DotPath, `${prefix}${i}.`)
: [`${prefix}${i}`],
);
}
return Object.entries(obj).flatMap(([k, v]) =>
v && typeof v === "object"
? dotPaths(v as DotPath, `${prefix}${k}.`)
: [`${prefix}${k}`],
);
};