(sourceObj: T)
| 74 | }) |
| 75 | |
| 76 | export function deepToRaw<T>(sourceObj: T): T { |
| 77 | const objectIterator = (input: any): any => { |
| 78 | if (isRef(input)) { |
| 79 | return objectIterator(input.value) |
| 80 | } |
| 81 | |
| 82 | const rawInput = isReactive(input) || isProxy(input) |
| 83 | ? toRaw(input) |
| 84 | : input |
| 85 | |
| 86 | if (Array.isArray(rawInput)) { |
| 87 | return rawInput.map((item) => objectIterator(item)) |
| 88 | } |
| 89 | |
| 90 | if (rawInput instanceof Map) { |
| 91 | return new Map( |
| 92 | Array.from(rawInput.entries(), ([key, value]) => [objectIterator(key), objectIterator(value)]) |
| 93 | ) |
| 94 | } |
| 95 | |
| 96 | if (rawInput instanceof Set) { |
| 97 | return new Set(Array.from(rawInput.values(), (value) => objectIterator(value))) |
| 98 | } |
| 99 | |
| 100 | if (rawInput instanceof Date) { |
| 101 | return new Date(rawInput) |
| 102 | } |
| 103 | |
| 104 | if (rawInput && typeof rawInput === "object") { |
| 105 | return Object.keys(rawInput).reduce((acc, key) => { |
| 106 | acc[key] = objectIterator(rawInput[key]) |
| 107 | return acc |
| 108 | }, {} as Record<string, unknown>) |
| 109 | } |
| 110 | |
| 111 | return rawInput |
| 112 | } |
| 113 | |
| 114 | return objectIterator(sourceObj) |
| 115 | } |
no test coverage detected
searching dependent graphs…