Skip to content

Commit f5e79c0

Browse files
authored
feat: update path-to-regexp (#993)
1 parent 3d64ae0 commit f5e79c0

File tree

3 files changed

+30
-15
lines changed

3 files changed

+30
-15
lines changed

Diff for: package-lock.json

+15-10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"dependencies": {
3333
"class-transformer": "^0.5.1",
3434
"glob": "^11.0.0",
35-
"path-to-regexp": "^6.2.2",
35+
"path-to-regexp": "^8.1.0",
3636
"reflect-metadata": "^0.2.2",
3737
"socket.io": "^4.7.5"
3838
},

Diff for: src/SocketControllers.ts

+14-4
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ export class SocketControllers {
109109
return true;
110110
}
111111

112-
const nspRegexp = nsp instanceof RegExp ? nsp : pathToRegexp(nsp);
112+
const nspRegexp = nsp instanceof RegExp ? nsp : pathToRegexp(nsp).regexp;
113113
return nspRegexp.test(namespace.name);
114114
});
115115

@@ -145,7 +145,7 @@ export class SocketControllers {
145145
for (const [nsp, controllers] of Object.entries(controllerNamespaceMap)) {
146146
const namespace = controllerNamespaceRegExpMap[nsp];
147147
this.io
148-
.of(namespace instanceof RegExp ? namespace : pathToRegexp(namespace))
148+
.of(namespace instanceof RegExp ? namespace : pathToRegexp(namespace).regexp)
149149
.on('connection', (socket: Socket) => {
150150
for (const controller of controllers) {
151151
this.registerController(socket, controller);
@@ -403,8 +403,18 @@ export class SocketControllers {
403403
namespace: string | RegExp | undefined,
404404
parameterMetadata?: ParameterMetadata
405405
) {
406-
const keys: any[] = [];
407-
const regexp = namespace instanceof RegExp ? namespace : pathToRegexp(namespace || '/', keys);
406+
let keys: any[];
407+
let regexp: RegExp;
408+
409+
if (namespace instanceof RegExp) {
410+
regexp = namespace;
411+
keys = [];
412+
} else {
413+
const pathToRegexpResult = pathToRegexp(namespace || '/');
414+
regexp = pathToRegexpResult.regexp;
415+
keys = pathToRegexpResult.keys;
416+
}
417+
408418
const parts: any[] = regexp.exec(socket.nsp.name) || [];
409419
const params: Record<string, string> = {};
410420
keys.forEach((key: any, index: number) => {

0 commit comments

Comments
 (0)