Files
gridpilot.gg/packages/racing/domain/errors/RacingDomainError.ts
2025-12-11 13:50:38 +01:00

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);
}
}