-
-
Notifications
You must be signed in to change notification settings - Fork 8.2k
Labels
needs triageThis issue has not been looked intoThis issue has not been looked into
Description
Is there an existing issue for this?
- I have searched the existing issues
Current behavior
-
Used to build and run without any issue before
v11. -
After upgrading to v11, when
nest start
/app/node_modules/@nestjs/cqrs/dist/decorators/events-handler.decorator.js:22
if (typeof last !== 'function' && 'scope' in last) {
^
TypeError: Cannot use 'in' operator to search for 'scope' in undefined
at /app/node_modules/@nestjs/cqrs/dist/decorators/events-handler.decorator.js:22:51
at DecorateConstructor (/app/node_modules/reflect-metadata/Reflect.js:549:33)
at Reflect.decorate (/app/node_modules/reflect-metadata/Reflect.js:143:24)
at name (/app/src/domains/system/events/handlers/domain-events-to-gateway-forwarder.ts:4:31)
at Object.<anonymous> (/app/src/domains/system/events/handlers/domain-events-to-gateway-forwarder.ts:29:1)
at Module._compile (node:internal/modules/cjs/loader:1546:14)
at Object..js (node:internal/modules/cjs/loader:1689:10)
at Module.load (node:internal/modules/cjs/loader:1318:32)
at Function._load (node:internal/modules/cjs/loader:1128:12)
at TracingChannel.traceSync (node:diagnostics_channel:315:14)
Node.js v22.10.0- After investigation, we found one sloppy use of Handler which caused the issue. Giving it parameters fixed the issue.
@EventsHandler()
export class EventGatewayForwarderHandler
Minimum reproduction code
no need for reproduction
Steps to reproduce
- Use
@EventsHandler()without providing any parameters.
Expected behavior
This should throw an error because it expects parameters.
export declare const EventsHandler: (...events: (IEvent | (new (...args: any[]) => IEvent) | InjectableOptions)[]) => ClassDecorator;
However,
-
before
@nestjs/cqrsv11, empty Handler decorators were not punished. -
And failing to provide parameter to the decorator does not trigger any compiler or tsc error until the run time under
v11. -
The error message is helpful to some extend, pointing only to issue with
events-handler.decorator.js:22anddomain-events-to-gateway-forwarder.ts:4:31.
So, I hope the EventsHandler decorator can check parameters during compile time or/and throw a more informative error pointing to the missing parameters.
Package
- I don't know. Or some 3rd-party package
-
@nestjs/common -
@nestjs/core -
@nestjs/microservices -
@nestjs/platform-express -
@nestjs/platform-fastify -
@nestjs/platform-socket.io -
@nestjs/platform-ws -
@nestjs/testing -
@nestjs/websockets - Other (see below)
Other package
@nestjs/cqrs
NestJS version
^11
Packages versions
"@nestjs/cqrs": "^11.0.2",Node.js version
22
In which operating systems have you tested?
- macOS
- Windows
- Linux
Other
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
needs triageThis issue has not been looked intoThis issue has not been looked into