34 lines
850 B
TypeScript
34 lines
850 B
TypeScript
import type { IDomainError, CommonDomainErrorKind } from '@gridpilot/shared/errors';
|
|
|
|
export abstract class RacingDomainError extends Error implements IDomainError<CommonDomainErrorKind> {
|
|
readonly type = 'domain' as const;
|
|
readonly context = 'racing-domain';
|
|
abstract readonly kind: CommonDomainErrorKind;
|
|
|
|
constructor(message: string) {
|
|
super(message);
|
|
Object.setPrototypeOf(this, new.target.prototype);
|
|
}
|
|
}
|
|
|
|
export class RacingDomainValidationError
|
|
extends RacingDomainError
|
|
implements IDomainError<'validation'>
|
|
{
|
|
readonly kind = 'validation' as const;
|
|
|
|
constructor(message: string) {
|
|
super(message);
|
|
}
|
|
}
|
|
|
|
export class RacingDomainInvariantError
|
|
extends RacingDomainError
|
|
implements IDomainError<'invariant'>
|
|
{
|
|
readonly kind = 'invariant' as const;
|
|
|
|
constructor(message: string) {
|
|
super(message);
|
|
}
|
|
} |