@asapjs/socket 0.10.5 → 0.10.6

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.
@@ -0,0 +1,2 @@
1
+ export { initSocketModule, getSocketIO, socketSendTo, socketSendAll, createSocket } from './socket';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSocket = exports.socketSendAll = exports.socketSendTo = exports.getSocketIO = exports.initSocketModule = void 0;
4
+ var socket_1 = require("./socket");
5
+ Object.defineProperty(exports, "initSocketModule", { enumerable: true, get: function () { return socket_1.initSocketModule; } });
6
+ Object.defineProperty(exports, "getSocketIO", { enumerable: true, get: function () { return socket_1.getSocketIO; } });
7
+ Object.defineProperty(exports, "socketSendTo", { enumerable: true, get: function () { return socket_1.socketSendTo; } });
8
+ Object.defineProperty(exports, "socketSendAll", { enumerable: true, get: function () { return socket_1.socketSendAll; } });
9
+ Object.defineProperty(exports, "createSocket", { enumerable: true, get: function () { return socket_1.createSocket; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAoG;AAA3F,0GAAA,gBAAgB,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,sGAAA,YAAY,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,sGAAA,YAAY,OAAA"}
@@ -0,0 +1,11 @@
1
+ import { Server as httpServer } from 'http';
2
+ import { Server as SocketServer } from 'socket.io';
3
+ import { ExecuteFunction, RouteRequest, SocketOption } from 'src/types';
4
+ export declare const createSocket: (request: RouteRequest, execute: ExecuteFunction) => any;
5
+ export declare const socketInit: (server: httpServer, options: SocketOption) => SocketServer<import("socket.io/dist/typed-events").DefaultEventsMap, import("socket.io/dist/typed-events").DefaultEventsMap, import("socket.io/dist/typed-events").DefaultEventsMap, any> | undefined;
6
+ export declare const getSocketIO: () => any | undefined;
7
+ export declare const socketSendTo: (to: string, event: string, data: any) => any;
8
+ export declare const socketSendAll: (event: string, data: any) => any;
9
+ export declare const loadPath: (path: string, subPath: string) => Promise<void>;
10
+ export declare const initSocketModule: (server: httpServer, dirname: string) => Promise<boolean>;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/socket/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,WAAW,CAAC;AAGnD,OAAO,EAAuB,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAO7F,eAAO,MAAM,YAAY,YAAa,YAAY,WAAW,eAAe,KAAG,GAK9E,CAAC;AAEF,eAAO,MAAM,UAAU,WAAY,UAAU,WAAW,YAAY,0MAiCnE,CAAC;AAEF,eAAO,MAAM,WAAW,QAAO,GAAG,GAAG,SAEpC,CAAC;AAEF,eAAO,MAAM,YAAY,OAAQ,MAAM,SAAS,MAAM,QAAQ,GAAG,QAEhE,CAAC;AAEF,eAAO,MAAM,aAAa,UAAW,MAAM,QAAQ,GAAG,QAErD,CAAC;AAEF,eAAO,MAAM,QAAQ,SAAgB,MAAM,WAAW,MAAM,kBAU3D,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAkB,UAAU,WAAW,MAAM,KAAG,QAAQ,OAAO,CAI3F,CAAC"}
@@ -0,0 +1,95 @@
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
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.initSocketModule = exports.loadPath = exports.socketSendAll = exports.socketSendTo = exports.getSocketIO = exports.socketInit = exports.createSocket = void 0;
16
+ const core_1 = require("@asapjs/core");
17
+ const fs_1 = __importDefault(require("fs"));
18
+ const socket_io_1 = require("socket.io");
19
+ const redis_adapter_1 = require("@socket.io/redis-adapter");
20
+ const redis_1 = require("redis");
21
+ const config = {
22
+ container: undefined,
23
+ listeners: [],
24
+ };
25
+ const createSocket = (request, execute) => {
26
+ config.listeners.push({
27
+ request,
28
+ execute,
29
+ });
30
+ };
31
+ exports.createSocket = createSocket;
32
+ const socketInit = (server, options) => {
33
+ console.log(options);
34
+ if (config.container)
35
+ return;
36
+ const io = new socket_io_1.Server(server);
37
+ if (options.redis) {
38
+ const pubClient = (0, redis_1.createClient)(options.redis);
39
+ const subClient = pubClient.duplicate();
40
+ Promise.all([pubClient.connect(), subClient.connect()])
41
+ .then(() => {
42
+ io.adapter((0, redis_adapter_1.createAdapter)(pubClient, subClient));
43
+ })
44
+ .catch((err) => core_1.logger.error('@socket :: Redis connect error.', err));
45
+ }
46
+ io.on('connection', (socket) => {
47
+ const user = socket.request.user;
48
+ socket.emit('success', {
49
+ message: 'success connected',
50
+ });
51
+ config.listeners.map((item) => {
52
+ socket.on(item.request.path, (body) => __awaiter(void 0, void 0, void 0, function* () {
53
+ yield item.execute(socket, { body, user });
54
+ }));
55
+ });
56
+ });
57
+ config.container = io;
58
+ return io;
59
+ };
60
+ exports.socketInit = socketInit;
61
+ const getSocketIO = () => {
62
+ return config.container;
63
+ };
64
+ exports.getSocketIO = getSocketIO;
65
+ const socketSendTo = (to, event, data) => {
66
+ var _a;
67
+ return (_a = config.container) === null || _a === void 0 ? void 0 : _a.to(to).emit(event, data);
68
+ };
69
+ exports.socketSendTo = socketSendTo;
70
+ const socketSendAll = (event, data) => {
71
+ var _a;
72
+ return (_a = config.container) === null || _a === void 0 ? void 0 : _a.emit(event, data);
73
+ };
74
+ exports.socketSendAll = socketSendAll;
75
+ const loadPath = (path, subPath) => __awaiter(void 0, void 0, void 0, function* () {
76
+ const files = yield fs_1.default.readdirSync(path + subPath, { withFileTypes: true });
77
+ const extension = 'js';
78
+ for (const file of files) {
79
+ if (file.isDirectory()) {
80
+ yield (0, exports.loadPath)(path, `${subPath}/${file.name}`);
81
+ }
82
+ else if (file.name.includes(`Socket.${extension}`) && file.name.endsWith('map') === false) {
83
+ require(`${path}/${subPath}/${file.name}`);
84
+ }
85
+ }
86
+ });
87
+ exports.loadPath = loadPath;
88
+ const initSocketModule = (server, dirname) => __awaiter(void 0, void 0, void 0, function* () {
89
+ var _a;
90
+ yield (0, exports.loadPath)(dirname, '');
91
+ yield (0, exports.socketInit)(server, (_a = (0, core_1.getConfig)()) === null || _a === void 0 ? void 0 : _a.socket);
92
+ return true;
93
+ });
94
+ exports.initSocketModule = initSocketModule;
95
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/socket/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { RedisClientOptions } from 'redis';
2
+ import { Socket } from 'socket.io';
3
+ export type AsyncFunction<A, O> = (args: A) => Promise<O>;
4
+ export interface SocketOption {
5
+ adapter?: unknown;
6
+ listener?: (socket: unknown) => void;
7
+ redis?: RedisClientOptions;
8
+ }
9
+ export interface AuthOption {
10
+ jwt_secret: string;
11
+ jwt_expiration: number;
12
+ handler: () => AsyncFunction<string, any>;
13
+ }
14
+ export interface ConfigSpec {
15
+ container?: any;
16
+ listeners: {
17
+ request: RouteRequest;
18
+ execute: ExecuteFunction;
19
+ }[];
20
+ }
21
+ export interface AppUser {
22
+ id?: number;
23
+ }
24
+ export interface RouteRequest {
25
+ path: string;
26
+ roles?: string[];
27
+ }
28
+ export interface ExecuteArgs {
29
+ path?: {
30
+ [key: string]: unknown;
31
+ };
32
+ body?: {
33
+ [key: string]: unknown;
34
+ };
35
+ user?: AppUser;
36
+ }
37
+ export type ExecuteFunction = (socket: Socket, ExecuteArgs: {
38
+ body: any;
39
+ user: any;
40
+ }) => Promise<unknown> | unknown | void;
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,SAAS,EAAE;QAAE,OAAO,EAAE,YAAY,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,EAAE,CAAC;CAClE;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAClC,IAAI,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,eAAe,GAAG,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,KAClC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@asapjs/socket",
3
- "version": "0.10.5",
3
+ "version": "0.10.6",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
7
+ "prebuild": "rm -rf dist",
7
8
  "build": "tsc"
8
9
  },
9
10
  "author": "",
@@ -21,5 +22,5 @@
21
22
  "@types/node": "^17.0.21",
22
23
  "typescript": "^4.6.2"
23
24
  },
24
- "gitHead": "5106cadeaf6db5dc23504984d6b1d103360420dd"
25
+ "gitHead": "2f019bab503e9cf26d48c4256f784f40b4881181"
25
26
  }