From 54aaa589901d354e68c75bbc472b4b4326483416 Mon Sep 17 00:00:00 2001 From: ztimson Date: Thu, 8 Oct 2026 11:28:05 -0400 Subject: [PATCH] Added everyNested to walk nested objects/arrays --- package.json | 2 +- src/objects.ts | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 5447663..670087e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ztimson/utils", - "version": "0.30.10", + "version": "0.30.11", "description": "Utility library", "author": "Zak Timson", "license": "MIT", diff --git a/src/objects.ts b/src/objects.ts index 6f879d8..e6d03af 100644 --- a/src/objects.ts +++ b/src/objects.ts @@ -165,6 +165,15 @@ export function encodeQuery(data: any): string { ).join('&'); } +/** Recursively walks obj/arrays, calling cb(dotPath, value) for every leaf+branch prop */ +export function everyNested(obj: any, cb: (key: string, value: any) => void, prefix = ''){ + Object.entries(obj).forEach(([k, v]) => { + const key = prefix ? `${prefix}.${k}` : k; + cb(key, v); + if (v && typeof v === 'object') everyNested(v, cb, key); + }); +} + /** * Recursively flatten a nested object, while maintaining key structure *