You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(nestjs): Add support for Symbol as event name (#17785)
The `@OnEvent` decorator accepts the following types for its argument:
```typescript
string | symbol | Array<string | symbol>
```
If a Symbol is included in an array, the code to get the eventName will
throw a TypeError (String(event)) This occurs because JavaScript’s
Array.prototype.join internally calls ToString on each array element.
Per the specification, ToString(Symbol) is not allowed and results in a
TypeError.
To avoid this issue, do not rely on String(array) or .join() on arrays
containing symbols directly. Instead, explicitly convert each element to
a string while handling symbols safely.
I couldn't find a way to test adding multiple `@OnEvent` so the second
part can be tested. It didn't have any tests before (as far as I can
tell), but would be nice to add them.
doc:
https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.join
doc:
https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tostring
0 commit comments