UNPKG

@nestjs/websockets

Version:

Nest - modern, fast, powerful node.js web framework (@websockets)

30 lines (29 loc) 1.01 kB
import { BaseWsExceptionFilter } from './base-ws-exception-filter.js'; import { selectExceptionFilterMetadata, isEmptyArray, } from '@nestjs/common/internal'; import { InvalidExceptionFilterException } from '@nestjs/core/internal'; /** * @publicApi */ export class WsExceptionsHandler extends BaseWsExceptionFilter { filters = []; handle(exception, host) { const client = host.switchToWs().getClient(); if (this.invokeCustomFilters(exception, host) || !client) { return; } super.catch(exception, host); } setCustomFilters(filters) { if (!Array.isArray(filters)) { throw new InvalidExceptionFilterException(); } this.filters = filters; } invokeCustomFilters(exception, args) { if (isEmptyArray(this.filters)) return false; const filter = selectExceptionFilterMetadata(this.filters, exception); filter && filter.func(exception, args); return !!filter; } }