@feathersjs/transport-commons 4.5.16 → 4.5.18
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.
- package/CHANGELOG.md +19 -0
- package/lib/socket/index.js +6 -7
- package/lib/socket/index.js.map +1 -1
- package/lib/socket/utils.d.ts +1 -1
- package/lib/socket/utils.js +4 -2
- package/lib/socket/utils.js.map +1 -1
- package/package.json +4 -4
- package/src/socket/index.ts +63 -39
- package/src/socket/utils.ts +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,25 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [4.5.18](https://github.com/feathersjs/feathers/compare/v4.5.17...v4.5.18) (2023-07-19)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **transport-commons:** Handle invalid service paths on socket lookups ([#3242](https://github.com/feathersjs/feathers/issues/3242)) ([0b9a6b1](https://github.com/feathersjs/feathers/commit/0b9a6b19b12ad05934e4c8bd9917448ed39d1ed8))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [4.5.17](https://github.com/feathersjs/feathers/compare/v4.5.16...v4.5.17) (2023-07-17)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @feathersjs/transport-commons
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
6
25
|
## [4.5.16](https://github.com/feathersjs/feathers/compare/v4.5.15...v4.5.16) (2023-02-24)
|
|
7
26
|
|
|
8
27
|
|
package/lib/socket/index.js
CHANGED
|
@@ -28,14 +28,13 @@ function socket({ done, emit, socketMap, socketKey, getParams }) {
|
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
30
|
// `connection` event
|
|
31
|
-
done.then(provider => provider.on('connection', (connection) => app.emit('connection', getParams(connection))));
|
|
31
|
+
done.then((provider) => provider.on('connection', (connection) => app.emit('connection', getParams(connection))));
|
|
32
32
|
// `socket.emit('methodName', 'serviceName', ...args)` handlers
|
|
33
|
-
done.then(provider => provider.on('connection', (connection) => {
|
|
33
|
+
done.then((provider) => provider.on('connection', (connection) => {
|
|
34
34
|
for (const method of app.methods) {
|
|
35
35
|
connection.on(method, (...args) => {
|
|
36
|
-
const path = args
|
|
37
|
-
|
|
38
|
-
(0, utils_1.runMethod)(app, getParams(connection), path, method, args);
|
|
36
|
+
const [path, ...rest] = args;
|
|
37
|
+
(0, utils_1.runMethod)(app, getParams(connection), path, method, rest);
|
|
39
38
|
});
|
|
40
39
|
}
|
|
41
40
|
connection.on('authenticate', (...args) => {
|
|
@@ -52,9 +51,9 @@ function socket({ done, emit, socketMap, socketKey, getParams }) {
|
|
|
52
51
|
});
|
|
53
52
|
}));
|
|
54
53
|
// Legacy `socket.emit('serviceName::methodName', ...args)` handlers
|
|
55
|
-
app.mixins.push((service, path) => done.then(provider => {
|
|
54
|
+
app.mixins.push((service, path) => done.then((provider) => {
|
|
56
55
|
provider.on('connection', (socket) => {
|
|
57
|
-
const methods = app.methods.filter(current =>
|
|
56
|
+
const methods = app.methods.filter((current) =>
|
|
58
57
|
// @ts-ignore
|
|
59
58
|
typeof service[current] === 'function');
|
|
60
59
|
for (const method of methods) {
|
package/lib/socket/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/socket/index.ts"],"names":[],"mappings":";;;;;;AACA,kDAA0B;AAC1B,0CAAuC;AACvC,wCAAqC;AACrC,mCAAmD;AAGnD,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,+BAA+B,CAAC,CAAC;AAUrD,SAAgB,MAAM,CAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/socket/index.ts"],"names":[],"mappings":";;;;;;AACA,kDAA0B;AAC1B,0CAAuC;AACvC,wCAAqC;AACrC,mCAAmD;AAGnD,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,+BAA+B,CAAC,CAAC;AAUrD,SAAgB,MAAM,CAAE,EACtB,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,SAAS,EACT,SAAS,EACK;IACd,OAAO,CAAC,GAAgB,EAAE,EAAE;QAC1B,MAAM,aAAa,GAAG,CAAC,UAA8B,EAAE,EAAE;YACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;YAEzB,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aAC7C;QACH,CAAC,CAAC;QAEF,GAAG,CAAC,SAAS,CAAC,IAAA,mBAAQ,GAAE,CAAC,CAAC;QAC1B,GAAG,CAAC,SAAS,CAAC,IAAA,iBAAO,GAAE,CAAC,CAAC;QAEzB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,IAAA,qBAAa,EAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7D,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACpC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,WAAgB,EAAE,MAAc,EAAE,EAAE;YACpD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;YAE9B,IAAI,UAAU,EAAE;gBACd,aAAa,CAAC,UAAU,CAAC,CAAC;aAC3B;QACH,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACrB,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,UAAe,EAAE,EAAE,CAC5C,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAC9C,CACF,CAAC;QAEF,+DAA+D;QAC/D,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACrB,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,UAAe,EAAE,EAAE;YAC5C,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;gBAChC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;oBACvC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;oBAE7B,IAAA,iBAAS,EAAC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC5D,CAAC,CAAC,CAAC;aACJ;YAED,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;gBAC/C,IAAI,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE;oBACpC,KAAK,CAAC,+BAA+B,CAAC,CAAC;oBACvC,IAAA,iBAAS,EACP,GAAG,EACH,SAAS,CAAC,UAAU,CAAC,EACrB,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAChC,QAAQ,EACR,IAAI,CACL,CAAC;iBACH;YACH,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAa,EAAE,EAAE;gBACxC,IAAI,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE;oBACpC,KAAK,CAAC,+BAA+B,CAAC,CAAC;oBACvC,IAAA,iBAAS,EACP,GAAG,EACH,SAAS,CAAC,UAAU,CAAC,EACrB,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAChC,QAAQ,EACR,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CACrB,CAAC;iBACH;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;QAEF,oEAAoE;QACpE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAChC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACrB,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAW,EAAE,EAAE;gBACxC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAChC,CAAC,OAAO,EAAE,EAAE;gBACV,aAAa;gBACb,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,UAAU,CACzC,CAAC;gBAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;oBAC5B,MAAM,SAAS,GAAG,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC;oBAEvC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;wBACtC,KAAK,CAAC,2BAA2B,SAAS,GAAG,CAAC,CAAC;wBAC/C,IAAA,iBAAS,EAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBACxD,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAjGD,wBAiGC"}
|
package/lib/socket/utils.d.ts
CHANGED
|
@@ -6,4 +6,4 @@ export declare const paramsPositions: {
|
|
|
6
6
|
};
|
|
7
7
|
export declare function normalizeError(e: any): any;
|
|
8
8
|
export declare function getDispatcher(emit: string, socketMap: WeakMap<RealTimeConnection, any>, socketKey?: any): (event: string, channel: CombinedChannel, context: HookContext, data?: any) => void;
|
|
9
|
-
export declare function runMethod(app: Application, connection: RealTimeConnection,
|
|
9
|
+
export declare function runMethod(app: Application, connection: RealTimeConnection, _path: string, _method: string, args: any[]): void;
|
package/lib/socket/utils.js
CHANGED
|
@@ -52,7 +52,9 @@ function getDispatcher(emit, socketMap, socketKey) {
|
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
54
|
exports.getDispatcher = getDispatcher;
|
|
55
|
-
function runMethod(app, connection,
|
|
55
|
+
function runMethod(app, connection, _path, _method, args) {
|
|
56
|
+
const path = typeof _path === 'string' ? _path : null;
|
|
57
|
+
const method = typeof _method === 'string' ? _method : null;
|
|
56
58
|
const trace = `method '${method}' on service '${path}'`;
|
|
57
59
|
const methodArgs = args.slice(0);
|
|
58
60
|
const callback = typeof methodArgs[methodArgs.length - 1] === 'function'
|
|
@@ -68,7 +70,7 @@ function runMethod(app, connection, path, method, args) {
|
|
|
68
70
|
// No valid service was found, return a 404
|
|
69
71
|
// just like a REST route would
|
|
70
72
|
if (lookup === null) {
|
|
71
|
-
return Promise.reject(new errors_1.default.NotFound(`Service '${path}' not found`));
|
|
73
|
+
return Promise.reject(new errors_1.default.NotFound(path === null ? 'Invalid service path' : `Service '${path}' not found`));
|
|
72
74
|
}
|
|
73
75
|
const { service, params: route = {} } = lookup;
|
|
74
76
|
// Only service methods are allowed
|
package/lib/socket/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/socket/utils.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,6DAAqC;AACrC,gEAAwC;AAKxC,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,+BAA+B,CAAC,CAAC;AAExC,QAAA,eAAe,GAA8B;IACxD,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,SAAgB,cAAc,CAAE,CAAM;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;IACjD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3C,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;KACJ;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;QACzC,OAAO,MAAM,CAAC,KAAK,CAAC;KACrB;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;IAEnB,OAAO,MAAM,CAAC;AAChB,CAAC;AAjBD,wCAiBC;AAED,SAAgB,aAAa,CAAE,IAAY,EAAE,SAA2C,EAAE,SAAe;IACvG,OAAO,UAAU,KAAa,EAAE,OAAwB,EAAE,OAAoB,EAAE,IAAU;QACxF,KAAK,CAAC,gBAAgB,KAAK,QAAQ,OAAO,CAAC,MAAM,cAAc,CAAC,CAAC;QAEjE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACvC,oEAAoE;YACpE,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAE7E,IAAI,MAAM,EAAE;gBACV,MAAM,SAAS,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;gBAE1D,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;gBAE/E,6EAA6E;gBAC7E,qEAAqE;gBACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAClF,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAA,iBAAO,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;iBAC/D;gBAED,KAAK,CAAC,gBAAgB,SAAS,eAAe,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBAExE,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;aACjC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAzBD,sCAyBC;AAED,SAAgB,SAAS,CAAE,GAAgB,EAAE,UAA8B,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/socket/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@feathersjs/transport-commons",
|
|
3
3
|
"description": "Shared functionality for websocket providers",
|
|
4
|
-
"version": "4.5.
|
|
4
|
+
"version": "4.5.18",
|
|
5
5
|
"homepage": "https://feathersjs.com",
|
|
6
6
|
"main": "lib/",
|
|
7
7
|
"types": "lib/",
|
|
@@ -44,13 +44,13 @@
|
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@feathersjs/commons": "^4.5.16",
|
|
47
|
-
"@feathersjs/errors": "^4.5.
|
|
47
|
+
"@feathersjs/errors": "^4.5.17",
|
|
48
48
|
"debug": "^4.3.3",
|
|
49
49
|
"lodash": "^4.17.21",
|
|
50
50
|
"radix-router": "^3.0.1"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@feathersjs/feathers": "^4.5.
|
|
53
|
+
"@feathersjs/feathers": "^4.5.17",
|
|
54
54
|
"@types/debug": "^4.1.7",
|
|
55
55
|
"@types/mocha": "^9.0.0",
|
|
56
56
|
"@types/node": "^17.0.8",
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
"ts-node": "^10.4.0",
|
|
60
60
|
"typescript": "^4.5.4"
|
|
61
61
|
},
|
|
62
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "2d3671d2e3ff88034181bccf2bfda04de856aa4f"
|
|
63
63
|
}
|
package/src/socket/index.ts
CHANGED
|
@@ -15,7 +15,13 @@ export interface SocketOptions {
|
|
|
15
15
|
getParams: (socket: any) => RealTimeConnection;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
export function socket ({
|
|
18
|
+
export function socket ({
|
|
19
|
+
done,
|
|
20
|
+
emit,
|
|
21
|
+
socketMap,
|
|
22
|
+
socketKey,
|
|
23
|
+
getParams
|
|
24
|
+
}: SocketOptions) {
|
|
19
25
|
return (app: Application) => {
|
|
20
26
|
const leaveChannels = (connection: RealTimeConnection) => {
|
|
21
27
|
const { channels } = app;
|
|
@@ -39,53 +45,71 @@ export function socket ({ done, emit, socketMap, socketKey, getParams }: SocketO
|
|
|
39
45
|
});
|
|
40
46
|
|
|
41
47
|
// `connection` event
|
|
42
|
-
done.then(provider
|
|
43
|
-
|
|
48
|
+
done.then((provider) =>
|
|
49
|
+
provider.on('connection', (connection: any) =>
|
|
50
|
+
app.emit('connection', getParams(connection))
|
|
51
|
+
)
|
|
44
52
|
);
|
|
45
53
|
|
|
46
54
|
// `socket.emit('methodName', 'serviceName', ...args)` handlers
|
|
47
|
-
done.then(provider
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
55
|
+
done.then((provider) =>
|
|
56
|
+
provider.on('connection', (connection: any) => {
|
|
57
|
+
for (const method of app.methods) {
|
|
58
|
+
connection.on(method, (...args: any[]) => {
|
|
59
|
+
const [path, ...rest] = args;
|
|
51
60
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
connection.on('authenticate', (...args: any[]) => {
|
|
58
|
-
if (app.get('defaultAuthentication')) {
|
|
59
|
-
debug('Got legacy authenticate event');
|
|
60
|
-
runMethod(app, getParams(connection), app.get('defaultAuthentication'), 'create', args);
|
|
61
|
+
runMethod(app, getParams(connection), path, method, rest);
|
|
62
|
+
});
|
|
61
63
|
}
|
|
62
|
-
});
|
|
63
64
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
connection.on('authenticate', (...args: any[]) => {
|
|
66
|
+
if (app.get('defaultAuthentication')) {
|
|
67
|
+
debug('Got legacy authenticate event');
|
|
68
|
+
runMethod(
|
|
69
|
+
app,
|
|
70
|
+
getParams(connection),
|
|
71
|
+
app.get('defaultAuthentication'),
|
|
72
|
+
'create',
|
|
73
|
+
args
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
connection.on('logout', (callback: any) => {
|
|
79
|
+
if (app.get('defaultAuthentication')) {
|
|
80
|
+
debug('Got legacy authenticate event');
|
|
81
|
+
runMethod(
|
|
82
|
+
app,
|
|
83
|
+
getParams(connection),
|
|
84
|
+
app.get('defaultAuthentication'),
|
|
85
|
+
'remove',
|
|
86
|
+
[null, {}, callback]
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
})
|
|
91
|
+
);
|
|
71
92
|
|
|
72
93
|
// Legacy `socket.emit('serviceName::methodName', ...args)` handlers
|
|
73
|
-
app.mixins.push((service, path) =>
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
94
|
+
app.mixins.push((service, path) =>
|
|
95
|
+
done.then((provider) => {
|
|
96
|
+
provider.on('connection', (socket: any) => {
|
|
97
|
+
const methods = app.methods.filter(
|
|
98
|
+
(current) =>
|
|
99
|
+
// @ts-ignore
|
|
100
|
+
typeof service[current] === 'function'
|
|
101
|
+
);
|
|
79
102
|
|
|
80
|
-
|
|
81
|
-
|
|
103
|
+
for (const method of methods) {
|
|
104
|
+
const eventName = `${path}::${method}`;
|
|
82
105
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
106
|
+
socket.on(eventName, (...args: any[]) => {
|
|
107
|
+
debug(`Got legacy method call '${eventName}'`);
|
|
108
|
+
runMethod(app, getParams(socket), path, method, args);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
})
|
|
113
|
+
);
|
|
90
114
|
};
|
|
91
115
|
}
|
package/src/socket/utils.ts
CHANGED
|
@@ -62,7 +62,9 @@ export function getDispatcher (emit: string, socketMap: WeakMap<RealTimeConnecti
|
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
export function runMethod (app: Application, connection: RealTimeConnection,
|
|
65
|
+
export function runMethod (app: Application, connection: RealTimeConnection, _path: string, _method: string, args: any[]) {
|
|
66
|
+
const path = typeof _path === 'string' ? _path : null
|
|
67
|
+
const method = typeof _method === 'string' ? _method : null
|
|
66
68
|
const trace = `method '${method}' on service '${path}'`;
|
|
67
69
|
const methodArgs = args.slice(0);
|
|
68
70
|
const callback = typeof methodArgs[methodArgs.length - 1] === 'function'
|
|
@@ -81,7 +83,7 @@ export function runMethod (app: Application, connection: RealTimeConnection, pat
|
|
|
81
83
|
// No valid service was found, return a 404
|
|
82
84
|
// just like a REST route would
|
|
83
85
|
if (lookup === null) {
|
|
84
|
-
return Promise.reject(new errors.NotFound(`Service '${path}' not found`));
|
|
86
|
+
return Promise.reject(new errors.NotFound(path === null ? 'Invalid service path' : `Service '${path}' not found`));
|
|
85
87
|
}
|
|
86
88
|
|
|
87
89
|
const { service, params: route = {} } = lookup;
|