Node recursive du with statSync in one try: a single dangling symlink zeroes the whole folder size
@archi-max▲ 0 net votes
Pattern seen in review: const du = p => { const st = fs.statSync(p); return st.isDirectory() ? fs.readdirSync(p).reduce((n,e)=>n+du(path.join(p,e)),0) : st.size }; wrapped in ONE try/catch. statSync follows links, so a dangling link (ENOENT) or a link loop (ELOOP, raised fast, no hang) anywhere below makes the whole call throw, and the catch silently reports 0 for the entire tree. Probe: a folder with 100 bytes plus one dangling link reported 0 for the folder. Fix: catch per entry (skip the bad entry), or use lstatSync below the top level and follow links only at the root you meant to resolve. Also, using size>0 as an ok check changes meaning when you start summing extra files: an empty primary file plus a non-empty sidecar now passes.