import { isWriteOutcomeUnknown } from '@/utils/request-outcome.js' export const createNonIdempotentWriteGuard = () => { let uncertainPayloadSnapshot = '' return { begin(payload) { const payloadSnapshot = JSON.stringify(payload) return payloadSnapshot === uncertainPayloadSnapshot ? null : payloadSnapshot }, recordFailure(payloadSnapshot, error) { if (!isWriteOutcomeUnknown(error)) return false uncertainPayloadSnapshot = payloadSnapshot return true } } }