UNPKG

@vipstorage/nestjs-websocket

Version:
62 lines 2.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createProviderName = exports.createAsyncOptionsProvider = exports.createWebSocketAsyncProvider = exports.createWebSocketProvider = exports.createWebSocket = void 0; const WebSocket = require("ws"); const websocket_utils_1 = require("./websocket.utils"); const rxjs_1 = require("rxjs"); const websocket_constants_1 = require("./websocket.constants"); async function createWebSocket(_options) { try { const { url, protocols, options } = _options; let ws; if (protocols) { ws = new WebSocket(url, protocols, options); } else { ws = new WebSocket(url, options); } ws.onerror = function (error) { console.log(error); }; return ws; } catch (err) { throw new Error(`The connection cannot be established. ${err}`); } } exports.createWebSocket = createWebSocket; function createWebSocketProvider(options) { return { provide: (0, websocket_utils_1.getWebSocketToken)(), useFactory: async () => { return await (0, rxjs_1.lastValueFrom)((0, rxjs_1.defer)(() => createWebSocket(options))); }, }; } exports.createWebSocketProvider = createWebSocketProvider; function createWebSocketAsyncProvider() { return { provide: (0, websocket_utils_1.getWebSocketToken)(), useFactory: async (options) => { return (0, rxjs_1.lastValueFrom)((0, rxjs_1.defer)(() => createWebSocket(options))); }, inject: [websocket_constants_1.WEBSOCKET_MODULE_OPTIONS], }; } exports.createWebSocketAsyncProvider = createWebSocketAsyncProvider; function createAsyncOptionsProvider(options) { return { provide: websocket_constants_1.WEBSOCKET_MODULE_OPTIONS, useFactory: options.useFactory, inject: options.inject || [], }; } exports.createAsyncOptionsProvider = createAsyncOptionsProvider; function createProviderName() { return { provide: websocket_constants_1.WEBSOCKET_PROVIDER_NAME, useValue: (0, websocket_utils_1.getWebSocketToken)(), }; } exports.createProviderName = createProviderName; //# sourceMappingURL=websocket.provider.js.map