mirror of https://codeberg.org/pzp/pzp-db.git
70 lines
1.5 KiB
JavaScript
70 lines
1.5 KiB
JavaScript
class ErrorWithCode extends Error {
|
|
/**
|
|
* @param {string} message
|
|
* @param {string} code
|
|
*/
|
|
constructor(message, code) {
|
|
super(message)
|
|
this.code = code
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param {number} offset
|
|
*/
|
|
function nanOffsetErr(offset) {
|
|
return new ErrorWithCode(`Offset ${offset} is not a number`, 'INVALID_OFFSET')
|
|
}
|
|
|
|
/**
|
|
* @param {number} offset
|
|
*/
|
|
function negativeOffsetErr(offset) {
|
|
return new ErrorWithCode(`Offset ${offset} is negative`, 'INVALID_OFFSET')
|
|
}
|
|
|
|
/**
|
|
* @param {number} offset
|
|
* @param {number} logSize
|
|
*/
|
|
function outOfBoundsOffsetErr(offset, logSize) {
|
|
return new ErrorWithCode(
|
|
`Offset ${offset} is beyond log size ${logSize}`,
|
|
'OFFSET_OUT_OF_BOUNDS'
|
|
)
|
|
}
|
|
|
|
function deletedRecordErr() {
|
|
return new ErrorWithCode('Record has been deleted', 'DELETED_RECORD')
|
|
}
|
|
|
|
function delDuringCompactErr() {
|
|
return new Error('Cannot delete while compaction is in progress')
|
|
}
|
|
|
|
function compactWithMaxLiveStreamErr() {
|
|
// prettier-ignore
|
|
return new Error('Compaction cannot run if there are live streams configured with opts.lt or opts.lte')
|
|
}
|
|
|
|
function overwriteLargerThanOld() {
|
|
// prettier-ignore
|
|
return new Error('Data to be overwritten should not be larger than existing data')
|
|
}
|
|
|
|
function appendLargerThanBlockErr() {
|
|
return new Error('Data to be appended is larger than block size')
|
|
}
|
|
|
|
module.exports = {
|
|
ErrorWithCode,
|
|
nanOffsetErr,
|
|
negativeOffsetErr,
|
|
outOfBoundsOffsetErr,
|
|
deletedRecordErr,
|
|
delDuringCompactErr,
|
|
compactWithMaxLiveStreamErr,
|
|
overwriteLargerThanOld,
|
|
appendLargerThanBlockErr,
|
|
}
|