@xuxinlai2002/pns-js
Version:
A NPM package in Typescript for .Play Name Service
121 lines (111 loc) • 3.43 kB
text/typescript
import type { ByteArray, Hex } from '../types/misc.js'
import { BaseError } from './base.js'
export type DataLengthTooLongErrorType = DataLengthTooLongError & {
name: 'DataLengthTooLongError'
}
/** @deprecated */
export class DataLengthTooLongError extends BaseError {
override name = 'DataLengthTooLongError'
constructor({ consumed, length }: { consumed: number; length: number }) {
super(
`Consumed bytes (${consumed}) is shorter than data length (${
length - 1
}).`,
)
}
}
export type DataLengthTooShortErrorType = DataLengthTooShortError & {
name: 'DataLengthTooShortError'
}
/** @deprecated */
export class DataLengthTooShortError extends BaseError {
override name = 'DataLengthTooShortError'
constructor({ length, dataLength }: { length: number; dataLength: number }) {
super(
`Data length (${dataLength - 1}) is shorter than consumed bytes length (${
length - 1
}).`,
)
}
}
export type IntegerOutOfRangeErrorType = IntegerOutOfRangeError & {
name: 'IntegerOutOfRangeError'
}
export class IntegerOutOfRangeError extends BaseError {
override name = 'IntegerOutOfRangeError'
constructor({
max,
min,
signed,
size,
value,
}: {
max?: string
min: string
signed?: boolean
size?: number
value: string
}) {
super(
`Number "${value}" is not in safe ${
size ? `${size * 8}-bit ${signed ? 'signed' : 'unsigned'} ` : ''
}integer range ${max ? `(${min} to ${max})` : `(above ${min})`}`,
)
}
}
export type InvalidBytesBooleanErrorType = InvalidBytesBooleanError & {
name: 'InvalidBytesBooleanError'
}
export class InvalidBytesBooleanError extends BaseError {
override name = 'InvalidBytesBooleanError'
constructor(bytes: ByteArray) {
super(
`Bytes value "${bytes}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,
)
}
}
export type InvalidHexBooleanErrorType = InvalidHexBooleanError & {
name: 'InvalidHexBooleanError'
}
export class InvalidHexBooleanError extends BaseError {
override name = 'InvalidHexBooleanError'
constructor(hex: Hex) {
super(
`Hex value "${hex}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,
)
}
}
export type InvalidHexValueErrorType = InvalidHexValueError & {
name: 'InvalidHexValueError'
}
export class InvalidHexValueError extends BaseError {
override name = 'InvalidHexValueError'
constructor(value: Hex) {
super(
`Hex value "${value}" is an odd length (${value.length}). It must be an even length.`,
)
}
}
export type OffsetOutOfBoundsErrorType = OffsetOutOfBoundsError & {
name: 'OffsetOutOfBoundsError'
}
/** @deprecated */
export class OffsetOutOfBoundsError extends BaseError {
override name = 'OffsetOutOfBoundsError' as const
constructor({ nextOffset, offset }: { nextOffset: number; offset: number }) {
super(
`Next offset (${nextOffset}) is greater than previous offset + consumed bytes (${offset})`,
)
}
}
export type SizeOverflowErrorType = SizeOverflowError & {
name: 'SizeOverflowError'
}
export class SizeOverflowError extends BaseError {
override name = 'SizeOverflowError' as const
constructor({ givenSize, maxSize }: { givenSize: number; maxSize: number }) {
super(
`Size cannot exceed ${maxSize} bytes. Given size: ${givenSize} bytes.`,
)
}
}