diff --git a/source/errors.ts b/source/errors.ts index b4de714..f018d0a 100644 --- a/source/errors.ts +++ b/source/errors.ts @@ -80,3 +80,13 @@ export class ExponentialBackoffNonIntegerError extends Error { this.name = 'ExponentialBackoffNonIntegerError'; } } + +/** + * Error thrown when a waitFor timeout is reached + */ +export class WaitForTimeoutError extends Error { + constructor(type: string) { + super(`Timeout waiting for event "${type}"`); + this.name = 'WaitForTimeoutError'; + } +} diff --git a/source/event-emitter.ts b/source/event-emitter.ts index 6e4fc26..ccc0dd5 100644 --- a/source/event-emitter.ts +++ b/source/event-emitter.ts @@ -1,5 +1,6 @@ import type { DeeplyReadonly } from './types.ts'; +import { WaitForTimeoutError } from './errors.ts'; import { deepFreeze } from './misc.ts'; export type EventMap = Record; @@ -213,7 +214,7 @@ export class EventEmitter { if (timeoutMs !== undefined) { timeoutId = setTimeout(() => { this.off(type, listener); - reject(new Error(`Timeout waiting for event "${String(type)}"`)); + reject(new WaitForTimeoutError(String(type))); }, timeoutMs); }