All files / packages/coordination/src errors.ts

100% Statements 14/14
100% Branches 2/2
100% Functions 7/7
100% Lines 14/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52        8x 8x       13x 8x         86x 86x               120x 120x           4x 4x               3x 3x           5x 5x      
// ── Semaphore ─────────────────────────────────────────────────────────────────
 
export class TryAcquireMissError extends Error {
	constructor() {
		super('Try-acquire miss: semaphore has no available tokens')
		this.name = 'TryAcquireMissError'
	}
}
 
export let isTryAcquireMiss = function isTryAcquireMiss(error: unknown): boolean {
	return error instanceof TryAcquireMissError
}
 
export class LeaseReleasedError extends Error {
	constructor() {
		super('Semaphore lease released')
		this.name = 'LeaseReleasedError'
	}
}
 
// ── Session ───────────────────────────────────────────────────────────────────
 
export class SessionClosedError extends Error {
	constructor(message = 'Session closed') {
		super(message)
		this.name = 'SessionClosedError'
	}
}
 
export class SessionExpiredError extends Error {
	constructor(message = 'Session expired') {
		super(message)
		this.name = 'SessionExpiredError'
	}
}
 
// ── Election ──────────────────────────────────────────────────────────────────
 
export class LeaderChangedError extends Error {
	constructor() {
		super('Leader changed')
		this.name = 'LeaderChangedError'
	}
}
 
export class ObservationEndedError extends Error {
	constructor() {
		super('Election observation ended')
		this.name = 'ObservationEndedError'
	}
}