@eleven-am/pondsocket-nest 0.0.73 → 0.0.75
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/index.d.ts +3 -4
- package/managers/connection.js +1 -1
- package/modules/pondSocket.js +1 -1
- package/package.json +10 -10
- package/performers/response.js +14 -16
- package/services/pondSocket.js +3 -1
package/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ import type {
|
|
|
13
13
|
PondMessage,
|
|
14
14
|
PondPresence,
|
|
15
15
|
UserData,
|
|
16
|
+
RedisOptions,
|
|
16
17
|
} from '@eleven-am/pondsocket/types';
|
|
17
18
|
import type { DynamicModule, ModuleMetadata } from '@nestjs/common';
|
|
18
19
|
|
|
@@ -31,7 +32,7 @@ interface CanActivate {
|
|
|
31
32
|
|
|
32
33
|
interface Metadata extends Omit<ModuleMetadata, 'controllers'> {
|
|
33
34
|
guards?: Constructor<CanActivate>[];
|
|
34
|
-
|
|
35
|
+
redisOptions?: RedisOptions;
|
|
35
36
|
isGlobal?: boolean;
|
|
36
37
|
}
|
|
37
38
|
|
|
@@ -41,8 +42,6 @@ type NestFuncType<Event extends string, Payload extends PondMessage, Presence ex
|
|
|
41
42
|
broadcastFrom?: Event;
|
|
42
43
|
assigns?: Partial<Assigns>;
|
|
43
44
|
presence?: Presence;
|
|
44
|
-
subscribeTo?: string[];
|
|
45
|
-
unsubscribeFrom?: string[];
|
|
46
45
|
} & Payload;
|
|
47
46
|
|
|
48
47
|
type PondResponse<EventType extends PondEvenType = PondEvenType, Event extends keyof EventType = string, Presence extends PondPresence = PondPresence, Assigns extends PondAssigns = PondAssigns> =
|
|
@@ -301,6 +300,6 @@ declare function PondGuards (...guards: Constructor<CanActivate>[]): ClassDecora
|
|
|
301
300
|
declare function createParamDecorator<Input, ParamType> (callback: ParamDecoratorCallback<Input, ParamType>): (data: Input) => ParameterDecorator;
|
|
302
301
|
|
|
303
302
|
declare class PondSocketModule {
|
|
304
|
-
static forRoot({ guards, providers, imports, exports, isGlobal,
|
|
303
|
+
static forRoot({ guards, providers, imports, exports, isGlobal, redisOptions }: Metadata): DynamicModule;
|
|
305
304
|
}
|
|
306
305
|
|
package/managers/connection.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.manageConnection = manageConnection;
|
|
4
|
-
const handlers_1 = require("./handlers");
|
|
5
4
|
const constants_1 = require("../constants");
|
|
5
|
+
const handlers_1 = require("./handlers");
|
|
6
6
|
function manageConnection(target) {
|
|
7
7
|
return (0, handlers_1.manageHandlers)(constants_1.onConnectionHandlerKey, target);
|
|
8
8
|
}
|
package/modules/pondSocket.js
CHANGED
|
@@ -7,7 +7,7 @@ const core_1 = require("@nestjs/core");
|
|
|
7
7
|
const guards_1 = require("../managers/guards");
|
|
8
8
|
const pondSocket_1 = require("../services/pondSocket");
|
|
9
9
|
class PondSocketModule {
|
|
10
|
-
static forRoot({ guards = [], providers = [], imports = [], exports = [], isGlobal = false, }) {
|
|
10
|
+
static forRoot({ guards = [], providers = [], imports = [], exports = [], isGlobal = false, redisOptions, }) {
|
|
11
11
|
const localGuards = (0, guards_1.getLocalGuards)();
|
|
12
12
|
const pondSocketProvider = {
|
|
13
13
|
provide: pondSocket_1.PondSocketService,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eleven-am/pondsocket-nest",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.75",
|
|
4
4
|
"description": "PondSocket is a fast simple socket server",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"socket",
|
|
@@ -28,22 +28,22 @@
|
|
|
28
28
|
"pipeline": "npm run lint && npm run build && npm run push"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@eleven-am/pondsocket": "^0.1.
|
|
31
|
+
"@eleven-am/pondsocket": "^0.1.172",
|
|
32
32
|
"@golevelup/nestjs-discovery": "^4.0.1"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@nestjs/common": "^10.
|
|
36
|
-
"@nestjs/core": "^10.
|
|
37
|
-
"@types/jest": "^29.5.
|
|
38
|
-
"@typescript-eslint/eslint-plugin": "^7.
|
|
39
|
-
"eslint-plugin-file-progress": "^1.
|
|
40
|
-
"eslint-plugin-import": "^2.
|
|
35
|
+
"@nestjs/common": "^10.4.4",
|
|
36
|
+
"@nestjs/core": "^10.4.4",
|
|
37
|
+
"@types/jest": "^29.5.13",
|
|
38
|
+
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
39
|
+
"eslint-plugin-file-progress": "^1.5.0",
|
|
40
|
+
"eslint-plugin-import": "^2.30.0",
|
|
41
41
|
"jest": "^29.7.0",
|
|
42
42
|
"prettier": "^3.3.3",
|
|
43
|
-
"ts-jest": "^29.2.
|
|
43
|
+
"ts-jest": "^29.2.5",
|
|
44
44
|
"ts-loader": "^9.5.1",
|
|
45
45
|
"ts-node": "^10.9.2",
|
|
46
|
-
"typescript": "^5.
|
|
46
|
+
"typescript": "^5.6.2"
|
|
47
47
|
},
|
|
48
48
|
"jest": {
|
|
49
49
|
"moduleFileExtensions": [
|
package/performers/response.js
CHANGED
|
@@ -23,7 +23,7 @@ function performResponse(socketId, channel, data, response) {
|
|
|
23
23
|
if (response && response.hasResponded || !isNotEmpty(data)) {
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
|
-
const { event, presence, assigns, broadcast, broadcastFrom,
|
|
26
|
+
const { event, presence, assigns, broadcast, broadcastFrom, broadcastTo } = data, rest = __rest(data, ["event", "presence", "assigns", "broadcast", "broadcastFrom", "broadcastTo"]);
|
|
27
27
|
if (response) {
|
|
28
28
|
if ((0, narrow_1.isConnectionResponse)(response) || (0, narrow_1.isJoinResponse)(response)) {
|
|
29
29
|
response
|
|
@@ -39,29 +39,27 @@ function performResponse(socketId, channel, data, response) {
|
|
|
39
39
|
response.reply(event, rest);
|
|
40
40
|
}
|
|
41
41
|
if ((0, narrow_1.isJoinResponse)(response) || (0, narrow_1.isEventResponse)(response)) {
|
|
42
|
-
if (broadcast
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
if (broadcast) {
|
|
43
|
+
response.broadcast(broadcast, rest);
|
|
44
|
+
}
|
|
45
|
+
if (broadcastFrom) {
|
|
46
|
+
response.broadcastFrom(broadcastFrom, rest);
|
|
45
47
|
}
|
|
46
48
|
if (broadcastTo) {
|
|
47
49
|
response.broadcastTo(broadcastTo.event, rest, broadcastTo.users);
|
|
48
50
|
}
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
|
-
if (subscribeTo) {
|
|
52
|
-
subscribeTo.forEach((channelName) => {
|
|
53
|
-
response.subscribeTo(channelName);
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
if (unsubscribeFrom) {
|
|
57
|
-
unsubscribeFrom.forEach((channelName) => {
|
|
58
|
-
response.unsubscribeFrom(channelName);
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
53
|
}
|
|
62
54
|
if (channel) {
|
|
63
|
-
if (isNotEmpty(rest) &&
|
|
64
|
-
|
|
55
|
+
if (isNotEmpty(rest) && !response) {
|
|
56
|
+
if (broadcast || event) {
|
|
57
|
+
const newEvent = (broadcast || event);
|
|
58
|
+
channel.broadcast(newEvent, rest);
|
|
59
|
+
}
|
|
60
|
+
if (broadcastTo) {
|
|
61
|
+
channel.broadcastTo(broadcastTo.users, broadcastTo.event, rest);
|
|
62
|
+
}
|
|
65
63
|
}
|
|
66
64
|
if (isNotEmpty(presence)) {
|
|
67
65
|
channel.upsertPresence(socketId, presence);
|
package/services/pondSocket.js
CHANGED
|
@@ -28,11 +28,12 @@ const guards_1 = require("../managers/guards");
|
|
|
28
28
|
const join_1 = require("../managers/join");
|
|
29
29
|
const leave_1 = require("../managers/leave");
|
|
30
30
|
class PondSocketService {
|
|
31
|
-
constructor(moduleRef, discovery, adapterHost, externalGuards) {
|
|
31
|
+
constructor(moduleRef, discovery, adapterHost, externalGuards, redisOptions) {
|
|
32
32
|
this.moduleRef = moduleRef;
|
|
33
33
|
this.discovery = discovery;
|
|
34
34
|
this.adapterHost = adapterHost;
|
|
35
35
|
this.externalGuards = externalGuards;
|
|
36
|
+
this.redisOptions = redisOptions;
|
|
36
37
|
this.logger = new common_1.Logger(PondSocketService.name);
|
|
37
38
|
const httpAdapter = this.adapterHost.httpAdapter;
|
|
38
39
|
void this.init(httpAdapter);
|
|
@@ -44,6 +45,7 @@ class PondSocketService {
|
|
|
44
45
|
const server = (0, http_1.createServer)(app);
|
|
45
46
|
const socket = new pondsocket_1.default({
|
|
46
47
|
server,
|
|
48
|
+
redisOptions: this.redisOptions,
|
|
47
49
|
});
|
|
48
50
|
groupedInstances.forEach((groupedInstance) => {
|
|
49
51
|
this.manageEndpoint(socket, groupedInstance);
|