@opra/socketio 1.22.7 → 1.22.9
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/package.json +3 -3
- package/socketio-adapter.js +15 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opra/socketio",
|
|
3
|
-
"version": "1.22.
|
|
3
|
+
"version": "1.22.9",
|
|
4
4
|
"description": "Opra Socket.IO adapter",
|
|
5
5
|
"author": "Panates",
|
|
6
6
|
"license": "MIT",
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"valgen": "^5.19.4"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@opra/common": "^1.22.
|
|
18
|
-
"@opra/core": "^1.22.
|
|
17
|
+
"@opra/common": "^1.22.9",
|
|
18
|
+
"@opra/core": "^1.22.9",
|
|
19
19
|
"socket.io": ">=4.0.0"
|
|
20
20
|
},
|
|
21
21
|
"type": "module",
|
package/socketio-adapter.js
CHANGED
|
@@ -41,6 +41,8 @@ export class SocketioAdapter extends PlatformAdapter {
|
|
|
41
41
|
return this._scope;
|
|
42
42
|
}
|
|
43
43
|
async close() {
|
|
44
|
+
if (!this.server.engine)
|
|
45
|
+
return;
|
|
44
46
|
return this.server.close().finally(() => {
|
|
45
47
|
this._controllerInstances.clear();
|
|
46
48
|
this._eventsRegByName.clear();
|
|
@@ -109,12 +111,13 @@ export class SocketioAdapter extends PlatformAdapter {
|
|
|
109
111
|
this.emit('error', error, socket, this);
|
|
110
112
|
});
|
|
111
113
|
socket.onAny((event, ...args) => {
|
|
112
|
-
const callback = args.length > 0
|
|
114
|
+
const callback = args.length > 0 && typeof args[args.length - 1] === 'function'
|
|
115
|
+
? args[args.length - 1]
|
|
116
|
+
: null;
|
|
113
117
|
const reg = this._eventsRegByName.get(event) ||
|
|
114
118
|
this._eventsRegByPattern.find(r => r.event.test(event));
|
|
115
119
|
if (!reg) {
|
|
116
|
-
|
|
117
|
-
callback(new OpraException(`Unknown event "${event}"`));
|
|
120
|
+
callback?.(new OpraException(`Unknown event "${event}"`));
|
|
118
121
|
return;
|
|
119
122
|
}
|
|
120
123
|
Promise.resolve().then(async () => {
|
|
@@ -148,13 +151,17 @@ export class SocketioAdapter extends PlatformAdapter {
|
|
|
148
151
|
i++;
|
|
149
152
|
}
|
|
150
153
|
let x = await reg.handler.apply(reg.contDef.instance, callArgs);
|
|
151
|
-
if (
|
|
152
|
-
|
|
153
|
-
|
|
154
|
+
if (callback) {
|
|
155
|
+
if (reg.encoder)
|
|
156
|
+
x = reg.encoder(x);
|
|
157
|
+
callback(x);
|
|
158
|
+
}
|
|
154
159
|
}
|
|
155
160
|
catch (err) {
|
|
156
|
-
|
|
157
|
-
|
|
161
|
+
if (callback) {
|
|
162
|
+
const error = err instanceof OpraException ? err : new OpraException(err);
|
|
163
|
+
callback({ errors: [error] });
|
|
164
|
+
}
|
|
158
165
|
}
|
|
159
166
|
});
|
|
160
167
|
});
|