(source: T)
| 214 | * @returns New copy of source |
| 215 | */ |
| 216 | export function deepCopy<T>(source: T): T { |
| 217 | const copy: any = Array.isArray(source) ? [] : {}; |
| 218 | for (const key in source) { |
| 219 | let val = source[key]; |
| 220 | if (val !== null && typeof val === 'object') { |
| 221 | val = deepCopy(val); |
| 222 | } |
| 223 | copy[key] = val; |
| 224 | } |
| 225 | return copy; |
| 226 | } |
| 227 | |
| 228 | /** |
| 229 | * Recursively go down a folder and call back for each file encountered |
no outgoing calls
no test coverage detected