export function createLatestRequestGuard() { let generation = 0 return { next(snapshot) { generation += 1 const stableSnapshot = Array.isArray(snapshot) ? [...snapshot] : snapshot && typeof snapshot === 'object' ? { ...snapshot } : snapshot return Object.freeze({ generation, snapshot: stableSnapshot }) }, invalidate() { generation += 1 return generation }, isLatest(ticket) { return ticket?.generation === generation } } }