overleaf-cep/services/web/frontend/js/features/history/utils/file-diff.ts
Alf Eaton 97863f62ca Upgrade TypeScript to 5.8.3 (#24900)
GitOrigin-RevId: 80937de3dde14e21e02af2ecb93350b1fedafc82
2025-07-03 08:05:57 +00:00

30 lines
814 B
TypeScript

import {
FileChanged,
FileDiff,
FileRemoved,
FileRenamed,
} from '../services/types/file'
export function isFileChanged(fileDiff: FileDiff): fileDiff is FileChanged {
return 'operation' in fileDiff
}
export function isFileRenamed(fileDiff: FileDiff): fileDiff is FileRenamed {
return isFileChanged(fileDiff) && fileDiff.operation === 'renamed'
}
export function isFileRemoved(fileDiff: FileDiff): fileDiff is FileRemoved {
return isFileChanged(fileDiff) && fileDiff.operation === 'removed'
}
export function isFileEditable(fileDiff: FileDiff) {
return 'editable' in fileDiff
? fileDiff.editable
: fileDiff.operation === 'edited'
}
export function fileFinalPathname(fileDiff: FileDiff) {
return (
(isFileRenamed(fileDiff) ? fileDiff.newPathname : null) || fileDiff.pathname
)
}