function isRecord(value: unknown): value is Record { return typeof value === "object" && value !== null && !Array.isArray(value); } function toRecord(value: unknown): Record { return isRecord(value) ? value : {}; } export function readNodeFavorite(data: unknown): boolean { const source = toRecord(data); return source.isFavorite === true; } export function setNodeFavorite( nextValue: boolean, currentData: unknown, ): Record { const source = toRecord(currentData); if (nextValue) { return { ...source, isFavorite: true, }; } const { isFavorite: _isFavorite, ...rest } = source; return rest; } export function preserveNodeFavorite( nextData: unknown, previousData: unknown, ): Record { return setNodeFavorite(readNodeFavorite(previousData), nextData); }