(path: ReadonlyArray<string>)
| 18 | ]; |
| 19 | |
| 20 | const pathMatches = (path: ReadonlyArray<string>): boolean => { |
| 21 | for (const pattern of REDACT_PATHS) { |
| 22 | if (pattern.length !== path.length) continue; |
| 23 | let ok = true; |
| 24 | for (let i = 0; i < pattern.length; i++) { |
| 25 | if (pattern[i] !== '*' && pattern[i] !== path[i]) { ok = false; break; } |
| 26 | } |
| 27 | if (ok) return true; |
| 28 | } |
| 29 | return false; |
| 30 | }; |
| 31 | |
| 32 | const walk = (value: unknown, path: string[]): unknown => { |
| 33 | if (pathMatches(path)) return SENTINEL; |