39 lines
787 B
TypeScript
39 lines
787 B
TypeScript
|
import { HttpException } from '@nestjs/common'
|
||
|
import { WsException } from '@nestjs/websockets'
|
||
|
|
||
|
import { ErrorEnum } from '~/constants/error-code.constant'
|
||
|
|
||
|
export class SocketException extends WsException {
|
||
|
private errorCode: number
|
||
|
|
||
|
constructor(message: string)
|
||
|
constructor(error: ErrorEnum)
|
||
|
constructor(...args: any) {
|
||
|
const error = args[0]
|
||
|
if (typeof error === 'string') {
|
||
|
super(
|
||
|
HttpException.createBody({
|
||
|
code: 0,
|
||
|
message: error,
|
||
|
}),
|
||
|
)
|
||
|
this.errorCode = 0
|
||
|
return
|
||
|
}
|
||
|
|
||
|
const [code, message] = error.split(':')
|
||
|
super(
|
||
|
HttpException.createBody({
|
||
|
code,
|
||
|
message,
|
||
|
}),
|
||
|
)
|
||
|
|
||
|
this.errorCode = Number(code)
|
||
|
}
|
||
|
|
||
|
getErrorCode(): number {
|
||
|
return this.errorCode
|
||
|
}
|
||
|
}
|