@vipstorage/nestjs-websocket
Version:
Websocket Client for NestJS based on ws
62 lines • 2.27 kB
JavaScript
;
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