in packages/logger-sls/src/helper/flatten-object.ts [61:82]
function loop(currentObj: Record<string, unknown>, parentPaths: string[]): void {
const depthFull = depth > 0 && parentPaths.length + 1 >= depth;
_forEach(currentObj, (v: unknown, k: string) => {
const key = [...parentPaths, k].join('.');
const prefixedKey = prefix ? `${prefix}.${key}` : key;
// 可以忽略不重要的信息
if (ignore && shouldIgnore(ignore, key, k, v)) {
return;
}
// 深度满了,或者不是对象,或者空对象(或数组),则不继续 loop
if (depthFull || !_isPlainObject(v) || _isEmpty(v)) {
result[prefixedKey] = v;
return;
}
loop(v as Record<string, unknown>, [...parentPaths, k]);
});
}