(fn: () => void, ms: number)
| 266 | } |
| 267 | |
| 268 | export default new BulkDeletePlugin(); |
| 269 | |
| 270 | // Timer tracking for safe cleanup |
| 271 | const pendingTimers = new Set<ReturnType<typeof setTimeout>>(); |
| 272 | |
| 273 | function scheduleTimer(fn: () => void, ms: number): ReturnType<typeof setTimeout> { |
| 274 | const t = setTimeout(() => { |
| 275 | pendingTimers.delete(t); |
| 276 | fn(); |
| 277 | }, ms); |
| 278 | pendingTimers.add(t); |