import type { SerializedError } from '@reduxjs/toolkit' const task = 'task' const listener = 'listener' const completed = 'completed' const cancelled = 'cancelled' /* TaskAbortError error codes */ export const taskCancelled = `${task}-${cancelled}` as const export const taskCompleted = `${task}-${completed}` as const export const listenerCancelled = `${listener}-${cancelled}` as const export const listenerCompleted = `${listener}-${completed}` as const export class TaskAbortError implements SerializedError { name = 'TaskAbortError' message = '' constructor(public code = 'unknown') { this.message = `task cancelled (reason: ${code})` } }