@nestjs/websockets 9.4.3 → 10.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,6 +32,7 @@ export declare class WsContextCreator {
32
32
  constructor(wsProxy: WsProxy, exceptionFiltersContext: ExceptionFiltersContext, pipesContextCreator: PipesContextCreator, pipesConsumer: PipesConsumer, guardsContextCreator: GuardsContextCreator, guardsConsumer: GuardsConsumer, interceptorsContextCreator: InterceptorsContextCreator, interceptorsConsumer: InterceptorsConsumer);
33
33
  create<T extends ParamsMetadata = ParamsMetadata>(instance: Controller, callback: (...args: unknown[]) => void, moduleKey: string, methodName: string): (...args: any[]) => Promise<void>;
34
34
  reflectCallbackParamtypes(instance: Controller, callback: (...args: any[]) => any): any[];
35
+ reflectCallbackPattern(callback: (...args: any[]) => any): string;
35
36
  createGuardsFn<TContext extends string = ContextType>(guards: any[], instance: Controller, callback: (...args: unknown[]) => any, contextType?: TContext): Function | null;
36
37
  getMetadata<TMetadata, TContext extends ContextType = ContextType>(instance: Controller, methodName: string, contextType: TContext): WsHandlerMetadata;
37
38
  exchangeKeysForValues<TMetadata = any>(keys: string[], metadata: TMetadata, moduleContext: string, paramsFactory: WsParamsFactory, contextFactory: (args: unknown[]) => ExecutionContextHost): ParamProperties[];
@@ -45,6 +45,7 @@ class WsContextCreator {
45
45
  return callback.apply(instance, args);
46
46
  };
47
47
  return this.wsProxy.create(async (...args) => {
48
+ args.push(this.reflectCallbackPattern(callback));
48
49
  const initialArgs = this.contextUtils.createNullArray(argsLength);
49
50
  fnCanActivate && (await fnCanActivate(args));
50
51
  return this.interceptorsConsumer.intercept(interceptors, args, instance, callback, handler(initialArgs, args), contextType);
@@ -53,6 +54,9 @@ class WsContextCreator {
53
54
  reflectCallbackParamtypes(instance, callback) {
54
55
  return Reflect.getMetadata(constants_1.PARAMTYPES_METADATA, instance, callback.name);
55
56
  }
57
+ reflectCallbackPattern(callback) {
58
+ return Reflect.getMetadata(constants_3.MESSAGE_METADATA, callback);
59
+ }
56
60
  createGuardsFn(guards, instance, callback, contextType) {
57
61
  const canActivateFn = async (args) => {
58
62
  const canActivate = await this.guardsConsumer.tryActivate(guards, args, instance, callback, contextType);
@@ -5,4 +5,4 @@ var WsParamtype;
5
5
  (function (WsParamtype) {
6
6
  WsParamtype[WsParamtype["SOCKET"] = 0] = "SOCKET";
7
7
  WsParamtype[WsParamtype["PAYLOAD"] = 3] = "PAYLOAD";
8
- })(WsParamtype = exports.WsParamtype || (exports.WsParamtype = {}));
8
+ })(WsParamtype || (exports.WsParamtype = WsParamtype = {}));
@@ -42,5 +42,5 @@ class BaseWsExceptionFilter {
42
42
  return (0, shared_utils_1.isObject)(err) && !!err.message;
43
43
  }
44
44
  }
45
- BaseWsExceptionFilter.logger = new common_1.Logger('WsExceptionsHandler');
46
45
  exports.BaseWsExceptionFilter = BaseWsExceptionFilter;
46
+ BaseWsExceptionFilter.logger = new common_1.Logger('WsExceptionsHandler');
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WsExceptionsHandler = void 0;
4
4
  const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
5
+ const select_exception_filter_metadata_util_1 = require("@nestjs/common/utils/select-exception-filter-metadata.util");
5
6
  const invalid_exception_filter_exception_1 = require("@nestjs/core/errors/exceptions/invalid-exception-filter.exception");
6
7
  const base_ws_exception_filter_1 = require("./base-ws-exception-filter");
7
8
  /**
@@ -28,11 +29,7 @@ class WsExceptionsHandler extends base_ws_exception_filter_1.BaseWsExceptionFilt
28
29
  invokeCustomFilters(exception, args) {
29
30
  if ((0, shared_utils_1.isEmpty)(this.filters))
30
31
  return false;
31
- const filter = this.filters.find(({ exceptionMetatypes }) => {
32
- const hasMetatype = !exceptionMetatypes.length ||
33
- exceptionMetatypes.some(ExceptionMetatype => exception instanceof ExceptionMetatype);
34
- return hasMetatype;
35
- });
32
+ const filter = (0, select_exception_filter_metadata_util_1.selectExceptionFilterMetadata)(this.filters, exception);
36
33
  filter && filter.func(exception, args);
37
34
  return !!filter;
38
35
  }
@@ -4,7 +4,6 @@ exports.WsParamsFactory = void 0;
4
4
  const ws_paramtype_enum_1 = require("../enums/ws-paramtype.enum");
5
5
  class WsParamsFactory {
6
6
  exchangeKeyForValue(type, data, args) {
7
- var _a;
8
7
  if (!args) {
9
8
  return null;
10
9
  }
@@ -12,7 +11,7 @@ class WsParamsFactory {
12
11
  case ws_paramtype_enum_1.WsParamtype.SOCKET:
13
12
  return args[0];
14
13
  case ws_paramtype_enum_1.WsParamtype.PAYLOAD:
15
- return data ? (_a = args[1]) === null || _a === void 0 ? void 0 : _a[data] : args[1];
14
+ return data ? args[1]?.[data] : args[1];
16
15
  default:
17
16
  return null;
18
17
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestjs/websockets",
3
- "version": "9.4.3",
3
+ "version": "10.0.1",
4
4
  "description": "Nest - modern, fast, powerful node.js web framework (@websockets)",
5
5
  "author": "Kamil Mysliwiec",
6
6
  "license": "MIT",
@@ -18,13 +18,13 @@
18
18
  "tslib": "2.5.3"
19
19
  },
20
20
  "devDependencies": {
21
- "@nestjs/common": "9.4.3",
22
- "@nestjs/core": "9.4.3"
21
+ "@nestjs/common": "10.0.1",
22
+ "@nestjs/core": "10.0.1"
23
23
  },
24
24
  "peerDependencies": {
25
- "@nestjs/common": "^9.0.0",
26
- "@nestjs/core": "^9.0.0",
27
- "@nestjs/platform-socket.io": "^9.0.0",
25
+ "@nestjs/common": "^10.0.0",
26
+ "@nestjs/core": "^10.0.0",
27
+ "@nestjs/platform-socket.io": "^10.0.0",
28
28
  "reflect-metadata": "^0.1.12",
29
29
  "rxjs": "^7.1.0"
30
30
  },
@@ -1,9 +1,9 @@
1
+ import { InjectionToken } from '@nestjs/common/interfaces';
1
2
  import { Injectable } from '@nestjs/common/interfaces/injectable.interface';
2
3
  import { NestApplicationContextOptions } from '@nestjs/common/interfaces/nest-application-context-options.interface';
3
4
  import { ApplicationConfig } from '@nestjs/core/application-config';
4
5
  import { NestContainer } from '@nestjs/core/injector/container';
5
6
  import { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';
6
- import { InstanceToken } from '@nestjs/core/injector/module';
7
7
  import { GraphInspector } from '@nestjs/core/inspector/graph-inspector';
8
8
  export declare class SocketModule<THttpServer = any, TAppOptions extends NestApplicationContextOptions = NestApplicationContextOptions> {
9
9
  private readonly socketsContainer;
@@ -13,7 +13,7 @@ export declare class SocketModule<THttpServer = any, TAppOptions extends NestApp
13
13
  private httpServer;
14
14
  private appOptions;
15
15
  register(container: NestContainer, applicationConfig: ApplicationConfig, graphInspector: GraphInspector, appOptions: TAppOptions, httpServer?: THttpServer): void;
16
- connectAllGateways(providers: Map<InstanceToken, InstanceWrapper<Injectable>>, moduleName: string): void;
16
+ connectAllGateways(providers: Map<InjectionToken, InstanceWrapper<Injectable>>, moduleName: string): void;
17
17
  connectGatewayToServer(wrapper: InstanceWrapper<Injectable>, moduleName: string): void;
18
18
  close(): Promise<any>;
19
19
  private initializeAdapter;
package/socket-module.js CHANGED
@@ -58,7 +58,7 @@ class SocketModule {
58
58
  await Promise.all((0, iterare_1.iterate)(servers.values())
59
59
  .filter(({ server }) => server)
60
60
  .map(async ({ server }) => adapter.close(server)));
61
- await (adapter === null || adapter === void 0 ? void 0 : adapter.dispose());
61
+ await adapter?.dispose();
62
62
  this.socketsContainer.clear();
63
63
  }
64
64
  initializeAdapter() {
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SocketServerProvider = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
6
5
  const server_and_event_streams_factory_1 = require("./factories/server-and-event-streams-factory");
7
6
  class SocketServerProvider {
@@ -23,7 +22,7 @@ class SocketServerProvider {
23
22
  }
24
23
  createSocketServer(options, port) {
25
24
  const adapter = this.applicationConfig.getIoAdapter();
26
- const _a = options, { namespace, server } = _a, partialOptions = tslib_1.__rest(_a, ["namespace", "server"]);
25
+ const { namespace, server, ...partialOptions } = options;
27
26
  const ioServer = adapter.create(port, partialOptions);
28
27
  const serverAndEventStreamsHost = server_and_event_streams_factory_1.ServerAndEventStreamsFactory.create(ioServer);
29
28
  this.socketsContainer.addOne({ port, path: options.path }, serverAndEventStreamsHost);
@@ -40,7 +39,11 @@ class SocketServerProvider {
40
39
  }
41
40
  getServerOfNamespace(options, port, server) {
42
41
  const adapter = this.applicationConfig.getIoAdapter();
43
- return adapter.create(port, Object.assign(Object.assign({}, options), { namespace: this.validateNamespace(options.namespace || ''), server }));
42
+ return adapter.create(port, {
43
+ ...options,
44
+ namespace: this.validateNamespace(options.namespace || ''),
45
+ server,
46
+ });
44
47
  }
45
48
  validateNamespace(namespace) {
46
49
  if (!(0, shared_utils_1.isString)(namespace)) {
@@ -104,11 +104,10 @@ class WebSocketsController {
104
104
  }
105
105
  inspectEntrypointDefinitions(instance, port, messageHandlers, instanceWrapperId) {
106
106
  messageHandlers.forEach(handler => {
107
- var _a;
108
107
  this.graphInspector.insertEntrypointDefinition({
109
108
  type: 'websocket',
110
109
  methodName: handler.methodName,
111
- className: (_a = instance.constructor) === null || _a === void 0 ? void 0 : _a.name,
110
+ className: instance.constructor?.name,
112
111
  classNodeId: instanceWrapperId,
113
112
  metadata: {
114
113
  port,
@@ -124,8 +123,7 @@ class WebSocketsController {
124
123
  }
125
124
  }
126
125
  printSubscriptionLogs(instance, subscribersMap) {
127
- var _a;
128
- const gatewayClassName = (_a = instance === null || instance === void 0 ? void 0 : instance.constructor) === null || _a === void 0 ? void 0 : _a.name;
126
+ const gatewayClassName = instance?.constructor?.name;
129
127
  if (!gatewayClassName) {
130
128
  return;
131
129
  }