/
githubmirror
/
tldraw
Обзор
Документация
Войти
/
githubmirror
/
tldraw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
apps/examples/src/misc/diff.ts
26 строк
725 B
Mitja Bezenšek
Add some additional debugging tools. (#4539)
18 сен 2024, 18:04
Не верифицирован
18 сен 2024, 18:04
017ec13
Код
Авторство
О чём код?
function format(prefix: string, key: string) { if (prefix && prefix !== '') { return `${prefix}/${key}` } return key } export function getDiff(prev: any, next: any, prefix = '', diff: any = {}) { const allKeys = new Set([...Object.keys(prev), ...Object.keys(next)]) if (prefix === '') { diff['id'] = { prev: prev.id, next: next.id } } for (const key of allKeys) { const prevValue = prev[key] const nextValue = next[key] const keyPath = format(prefix, key) if (prevValue !== nextValue) { if (typeof prevValue === 'object' && typeof nextValue === 'object') { getDiff(prevValue, nextValue, keyPath, diff) } else { diff[keyPath] = { prev: prev[key], next: next[key] } } } } return diff }