@eleven-am/pondsocket-nest 0.0.74 → 0.0.76
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 +11 -4
- package/managers/connection.js +1 -1
- package/modules/pondSocket.js +34 -2
- package/package.json +2 -2
- package/performers/response.js +1 -11
- 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,18 +32,22 @@ 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
|
|
|
39
|
+
export interface AsyncMetadata extends Metadata {
|
|
40
|
+
inject?: any[];
|
|
41
|
+
imports?: any[];
|
|
42
|
+
useFactory: (...args: any[]) => Promise<RedisOptions>;
|
|
43
|
+
}
|
|
44
|
+
|
|
38
45
|
type NestFuncType<Event extends string, Payload extends PondMessage, Presence extends PondPresence, Assigns extends PondAssigns = PondAssigns> = {
|
|
39
46
|
event?: Event;
|
|
40
47
|
broadcast?: Event;
|
|
41
48
|
broadcastFrom?: Event;
|
|
42
49
|
assigns?: Partial<Assigns>;
|
|
43
50
|
presence?: Presence;
|
|
44
|
-
subscribeTo?: string[];
|
|
45
|
-
unsubscribeFrom?: string[];
|
|
46
51
|
} & Payload;
|
|
47
52
|
|
|
48
53
|
type PondResponse<EventType extends PondEvenType = PondEvenType, Event extends keyof EventType = string, Presence extends PondPresence = PondPresence, Assigns extends PondAssigns = PondAssigns> =
|
|
@@ -301,6 +306,8 @@ declare function PondGuards (...guards: Constructor<CanActivate>[]): ClassDecora
|
|
|
301
306
|
declare function createParamDecorator<Input, ParamType> (callback: ParamDecoratorCallback<Input, ParamType>): (data: Input) => ParameterDecorator;
|
|
302
307
|
|
|
303
308
|
declare class PondSocketModule {
|
|
304
|
-
static forRoot({ guards, providers, imports, exports, isGlobal,
|
|
309
|
+
static forRoot({ guards, providers, imports, exports, isGlobal, redisOptions }: Metadata): DynamicModule;
|
|
310
|
+
|
|
311
|
+
static forRootAsync({ guards, providers, imports, exports, isGlobal, useFactory, inject }: AsyncMetadata): Promise<DynamicModule>;
|
|
305
312
|
}
|
|
306
313
|
|
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
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.PondSocketModule = void 0;
|
|
4
13
|
const nestjs_discovery_1 = require("@golevelup/nestjs-discovery");
|
|
@@ -7,11 +16,11 @@ const core_1 = require("@nestjs/core");
|
|
|
7
16
|
const guards_1 = require("../managers/guards");
|
|
8
17
|
const pondSocket_1 = require("../services/pondSocket");
|
|
9
18
|
class PondSocketModule {
|
|
10
|
-
static forRoot({ guards = [], providers = [], imports = [], exports = [], isGlobal = false, }) {
|
|
19
|
+
static forRoot({ guards = [], providers = [], imports = [], exports = [], isGlobal = false, redisOptions, }) {
|
|
11
20
|
const localGuards = (0, guards_1.getLocalGuards)();
|
|
12
21
|
const pondSocketProvider = {
|
|
13
22
|
provide: pondSocket_1.PondSocketService,
|
|
14
|
-
useFactory: (moduleRef, adapterHost, discovery) => new pondSocket_1.PondSocketService(moduleRef, discovery, adapterHost, guards),
|
|
23
|
+
useFactory: (moduleRef, adapterHost, discovery) => new pondSocket_1.PondSocketService(moduleRef, discovery, adapterHost, guards, redisOptions),
|
|
15
24
|
inject: [core_1.ModuleRef, core_1.HttpAdapterHost, nestjs_discovery_1.DiscoveryService],
|
|
16
25
|
};
|
|
17
26
|
guards = [...new Set([...localGuards, ...guards])];
|
|
@@ -27,5 +36,28 @@ class PondSocketModule {
|
|
|
27
36
|
],
|
|
28
37
|
};
|
|
29
38
|
}
|
|
39
|
+
static forRootAsync({ useFactory, inject = [], guards = [], imports = [], exports = [], providers = [], isGlobal = false, }) {
|
|
40
|
+
const localGuards = (0, guards_1.getLocalGuards)();
|
|
41
|
+
const pondSocketProvider = {
|
|
42
|
+
provide: pondSocket_1.PondSocketService,
|
|
43
|
+
inject: [core_1.ModuleRef, core_1.HttpAdapterHost, nestjs_discovery_1.DiscoveryService, ...inject],
|
|
44
|
+
useFactory: (moduleRef, adapterHost, discovery, ...args) => __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
const redisOptions = yield useFactory(...args);
|
|
46
|
+
return new pondSocket_1.PondSocketService(moduleRef, discovery, adapterHost, guards, redisOptions);
|
|
47
|
+
}),
|
|
48
|
+
};
|
|
49
|
+
guards = [...new Set([...localGuards, ...guards])];
|
|
50
|
+
return {
|
|
51
|
+
exports,
|
|
52
|
+
global: isGlobal,
|
|
53
|
+
imports: [...imports, nestjs_discovery_1.DiscoveryModule],
|
|
54
|
+
module: PondSocketModule,
|
|
55
|
+
providers: [
|
|
56
|
+
pondSocketProvider,
|
|
57
|
+
...providers,
|
|
58
|
+
...guards,
|
|
59
|
+
],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
30
62
|
}
|
|
31
63
|
exports.PondSocketModule = PondSocketModule;
|
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.76",
|
|
4
4
|
"description": "PondSocket is a fast simple socket server",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"socket",
|
|
@@ -28,7 +28,7 @@
|
|
|
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": {
|
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
|
|
@@ -50,16 +50,6 @@ function performResponse(socketId, channel, data, response) {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
if (subscribeTo) {
|
|
54
|
-
subscribeTo.forEach((channelName) => {
|
|
55
|
-
response.subscribeTo(channelName);
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
if (unsubscribeFrom) {
|
|
59
|
-
unsubscribeFrom.forEach((channelName) => {
|
|
60
|
-
response.unsubscribeFrom(channelName);
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
53
|
}
|
|
64
54
|
if (channel) {
|
|
65
55
|
if (isNotEmpty(rest) && !response) {
|
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);
|