45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
|
|
class AedifexError extends Error {
|
|
constructor(message) {
|
|
super(message)
|
|
this.name = 'AedifexError'
|
|
}
|
|
}
|
|
|
|
class UnhandledTypeError extends AedifexError {
|
|
constructor(received) {
|
|
super(`unhandled aedifex type "${received}"`)
|
|
this.name = 'UnhandleTypeError'
|
|
}
|
|
}
|
|
|
|
class IncorrectTypeError extends AedifexError {
|
|
constructor(expected, received) {
|
|
super(`expected "${expected}", received "${received}"`)
|
|
this.name = 'IncorrectTypeError'
|
|
}
|
|
}
|
|
|
|
class IncorrectPropertyError extends AedifexError {
|
|
constructor(field, expected, received) {
|
|
super(`expected property "${field}" to be "${expected}", received type "${received}"`)
|
|
this.name = 'IncorrectPropertyError'
|
|
}
|
|
}
|
|
|
|
class MismatchedVersionError extends AedifexError {
|
|
constructor(expected, received) {
|
|
super(`expected version "${expected}", received "${received}"`)
|
|
this.name = 'MismatchedVersionError'
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
AedifexError,
|
|
UnhandledTypeError,
|
|
IncorrectTypeError,
|
|
IncorrectPropertyError,
|
|
MismatchedVersionError,
|
|
}
|
|
|