@nestjs-redis/socket.io-adapter 0.13.0 → 0.13.2
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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestjs-redis/socket.io-adapter",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Saba Pochkhua <saba.pochkhua@gmail.com> (https://github.com/CSenshi)",
|
|
6
6
|
"description": "Redis-powered Socket.IO adapter for NestJS enabling scalable WebSocket connections",
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { INestApplication, WebSocketAdapter } from '@nestjs/common';
|
|
2
2
|
import type { RedisClientType } from 'redis';
|
|
3
|
-
export
|
|
4
|
-
private pubClient;
|
|
5
|
-
private subClient;
|
|
6
|
-
private adapterConstructor;
|
|
3
|
+
export interface RedisIoAdapterInstance extends WebSocketAdapter {
|
|
7
4
|
connectToRedis(redisClient: RedisClientType): Promise<void>;
|
|
8
|
-
createIOServer(port: number, options?:
|
|
9
|
-
close(server: Parameters<IoAdapter['close']>[0]): Promise<void>;
|
|
5
|
+
createIOServer(port: number, options?: unknown): unknown;
|
|
10
6
|
}
|
|
7
|
+
export type RedisIoAdapterConstructor = new (app: INestApplication) => RedisIoAdapterInstance;
|
|
8
|
+
export declare function getIoAdapterCls(): Promise<RedisIoAdapterConstructor>;
|
|
11
9
|
//# sourceMappingURL=redis-io.adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-io.adapter.d.ts","sourceRoot":"","sources":["../../../../../packages/socket.io-adapter/src/lib/redis-io.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"redis-io.adapter.d.ts","sourceRoot":"","sources":["../../../../../packages/socket.io-adapter/src/lib/redis-io.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAE7C,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,cAAc,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC1D;AAED,MAAM,MAAM,yBAAyB,GAAG,KACtC,GAAG,EAAE,gBAAgB,KAClB,sBAAsB,CAAC;AAE5B,wBAAsB,eAAe,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAmC1E"}
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
3
|
+
exports.getIoAdapterCls = getIoAdapterCls;
|
|
4
|
+
async function getIoAdapterCls() {
|
|
5
|
+
const { IoAdapter } = await import('@nestjs/platform-socket.io');
|
|
6
|
+
const { createAdapter } = await import('@socket.io/redis-adapter');
|
|
7
|
+
class RedisIoAdapter extends IoAdapter {
|
|
8
|
+
async connectToRedis(redisClient) {
|
|
9
|
+
this.pubClient = redisClient;
|
|
10
|
+
this.subClient = this.pubClient.duplicate();
|
|
11
|
+
await this.subClient.connect();
|
|
12
|
+
this.adapterConstructor = createAdapter(this.pubClient, this.subClient);
|
|
13
|
+
}
|
|
14
|
+
createIOServer(port, options) {
|
|
15
|
+
const server = super.createIOServer(port, options);
|
|
16
|
+
server.adapter(this.adapterConstructor);
|
|
17
|
+
return server;
|
|
18
|
+
}
|
|
19
|
+
async close(server) {
|
|
20
|
+
super.close(server);
|
|
21
|
+
if (this.subClient) {
|
|
22
|
+
await this.subClient.quit();
|
|
23
|
+
}
|
|
22
24
|
}
|
|
23
25
|
}
|
|
26
|
+
return RedisIoAdapter;
|
|
24
27
|
}
|
|
25
|
-
exports.RedisIoAdapter = RedisIoAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-redis-adapter.d.ts","sourceRoot":"","sources":["../../../../../packages/socket.io-adapter/src/lib/setup-redis-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAWvD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,gBAAgB,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"setup-redis-adapter.d.ts","sourceRoot":"","sources":["../../../../../packages/socket.io-adapter/src/lib/setup-redis-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAWvD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,gBAAgB,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAuBf"}
|
|
@@ -19,7 +19,8 @@ async function setupRedisAdapter(app, redisToken) {
|
|
|
19
19
|
throw new exceptions_2.RedisAdapterAlreadySetUpException();
|
|
20
20
|
}
|
|
21
21
|
appSet.add(app);
|
|
22
|
-
const
|
|
22
|
+
const cls = await (0, redis_io_adapter_1.getIoAdapterCls)();
|
|
23
|
+
const redisIoAdapter = new cls(app);
|
|
23
24
|
try {
|
|
24
25
|
const moduleRef = app.get(core_1.ModuleRef);
|
|
25
26
|
const redisClient = moduleRef.get(RedisToken(redisToken), {
|