@digipair/skill-client-websocket 0.49.3 → 0.49.5

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.cjs.js CHANGED
@@ -3,27 +3,6 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var engine = require('@digipair/engine');
6
- var WS = require('isomorphic-ws');
7
-
8
- function _interopNamespace(e) {
9
- if (e && e.__esModule) return e;
10
- var n = Object.create(null);
11
- if (e) {
12
- Object.keys(e).forEach(function (k) {
13
- if (k !== 'default') {
14
- var d = Object.getOwnPropertyDescriptor(e, k);
15
- Object.defineProperty(n, k, d.get ? d : {
16
- enumerable: true,
17
- get: function () { return e[k]; }
18
- });
19
- }
20
- });
21
- }
22
- n["default"] = e;
23
- return Object.freeze(n);
24
- }
25
-
26
- var WS__namespace = /*#__PURE__*/_interopNamespace(WS);
27
6
 
28
7
  function _extends() {
29
8
  _extends = Object.assign || function assign(target) {
@@ -36,55 +15,72 @@ function _extends() {
36
15
  return _extends.apply(this, arguments);
37
16
  }
38
17
 
18
+ const WS = typeof WebSocket === 'undefined' ? require('ws') : WebSocket;
39
19
  let ClientWebSocketService = class ClientWebSocketService {
20
+ async send(params, _pinsSettingsList, _context) {
21
+ const { websocket, message } = params;
22
+ return websocket.send(JSON.stringify(message));
23
+ }
24
+ async close(params, _pinsSettingsList, _context) {
25
+ const { websocket } = params;
26
+ websocket.cwssForceClose = true;
27
+ return websocket.close();
28
+ }
40
29
  async connect(params, _pinsSettingsList, context) {
41
30
  var _context_protected;
42
31
  const { url = '', message = [], open = [], close = [], error = [], retryInterval = 1000, maxRetries = 10 } = params;
43
32
  this.retryInterval = retryInterval;
44
33
  this.maxRetries = maxRetries;
45
34
  // Crée une nouvelle instance WebSocket
46
- this.ws = new WS__namespace(url, {
35
+ this.ws = new WS(url, {
47
36
  signal: (_context_protected = context.protected) == null ? void 0 : _context_protected.signal
48
37
  });
49
38
  // Event onopen: Connexion réussie
50
- this.ws.on('open', async ()=>{
39
+ this.ws.onopen = async ()=>{
51
40
  this.retryCount = 0; // Réinitialise le compteur de tentatives après une connexion réussie
52
41
  await engine.executePinsList(open, _extends({}, context));
53
- });
42
+ };
54
43
  // Event onmessage: Réception d'un message
55
- this.ws.on('message', async (notification)=>{
44
+ this.ws.onmessage = async (event)=>{
56
45
  await engine.executePinsList(message, _extends({}, context, {
57
- message: JSON.parse(notification)
46
+ message: JSON.parse(event.data)
58
47
  }));
59
- });
48
+ };
60
49
  // Event onclose: Déconnexion
61
- this.ws.on('close', async ()=>{
62
- await engine.executePinsList(close, _extends({}, context));
63
- this.reconnectWebSocket(params, _pinsSettingsList, context);
64
- });
50
+ this.ws.onclose = async ()=>{
51
+ const reconnect = this.ws.cwssForceClose ? false : this.reconnectWebSocket(params, _pinsSettingsList, context);
52
+ if (!reconnect) {
53
+ await engine.executePinsList(close, _extends({}, context));
54
+ }
55
+ };
65
56
  // Event onerror: Erreur
66
- this.ws.on('error', async (err)=>{
57
+ this.ws.onerror = async (err)=>{
67
58
  await engine.executePinsList(error, _extends({}, context, {
68
59
  error: err
69
60
  }));
70
61
  this.ws.close(); // Ferme la connexion en cas d'erreur
71
- });
62
+ };
72
63
  return this.ws;
73
64
  }
74
- reconnectWebSocket(params, _pinsSettingsList, context) {
65
+ reconnectWebSocket(params, pinsSettingsList, context) {
75
66
  if (this.retryCount >= this.maxRetries) {
76
- return;
67
+ return false;
77
68
  }
78
69
  setTimeout(()=>{
79
70
  this.retryCount++;
80
71
  this.retryInterval *= 2; // Double l'intervalle entre les tentatives
81
- this.connect(params, _pinsSettingsList, context);
72
+ this.connect(params, pinsSettingsList, context);
82
73
  }, this.retryInterval);
74
+ return true;
83
75
  }
84
76
  constructor(){
85
77
  this.retryCount = 0;
86
78
  }
87
79
  };
88
80
  const connect = (params, pinsSettingsList, context)=>new ClientWebSocketService().connect(params, pinsSettingsList, context);
81
+ const send = (params, pinsSettingsList, context)=>new ClientWebSocketService().send(params, pinsSettingsList, context);
82
+ const close = (params, pinsSettingsList, context)=>new ClientWebSocketService().close(params, pinsSettingsList, context);
89
83
 
84
+ exports.close = close;
90
85
  exports.connect = connect;
86
+ exports.send = send;