Files
payload/packages/next/src/fetchAPI-multipart/uploadTimer.ts
2024-04-26 16:10:14 -04:00

26 lines
509 B
TypeScript

type CreateUploadTimer = (
timeout?: number,
callback?: () => void,
) => {
clear: () => void
set: () => boolean
}
export const createUploadTimer: CreateUploadTimer = (timeout = 0, callback = () => {}) => {
let timer = null
const clear = () => {
clearTimeout(timer)
}
const set = () => {
// Do not start a timer if zero timeout or it hasn't been set.
if (!timeout) return false
clear()
timer = setTimeout(callback, timeout)
return true
}
return { clear, set }
}