@digipair/skill-client-websocket 0.91.0-0 → 0.91.0

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,4 @@
1
+ import { PinsSettings } from '@digipair/engine';
2
+ export declare const connect: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
3
+ export declare const send: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
4
+ export declare const close: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
package/package.json CHANGED
@@ -1,28 +1,15 @@
1
1
  {
2
2
  "name": "@digipair/skill-client-websocket",
3
- "version": "0.91.0-0",
4
- "type": "module",
5
- "main": "dist/libs/skill-client-websocket/index.cjs.js",
6
- "module": "dist/libs/skill-client-websocket/index.esm.js",
7
- "types": "dist/libs/skill-client-websocket/index.esm.d.ts",
8
- "exports": {
9
- "./package.json": "./libs/skill-client-websocket/package.json",
10
- ".": {
11
- "development": "./dist/libs/skill-client-websocket/src/index.ts",
12
- "types": "./dist/libs/skill-client-websocket/index.esm.d.ts",
13
- "import": "./dist/libs/skill-client-websocket/index.esm.js",
14
- "default": "./dist/libs/skill-client-websocket/index.cjs.js"
15
- }
16
- },
3
+ "version": "0.91.0",
17
4
  "keywords": [
18
5
  "digipair",
19
6
  "web",
20
- "service"
7
+ "service",
8
+ "tool"
21
9
  ],
22
- "nx": {
23
- "name": "skill-client-websocket"
24
- },
25
10
  "dependencies": {
26
- "@digipair/engine": "0.91.0-0"
27
- }
28
- }
11
+ "ws": "^8.18.0"
12
+ },
13
+ "main": "./index.cjs.js",
14
+ "module": "./index.esm.js"
15
+ }
package/.swcrc DELETED
@@ -1,28 +0,0 @@
1
- {
2
- "jsc": {
3
- "target": "es2017",
4
- "parser": {
5
- "syntax": "typescript",
6
- "decorators": true,
7
- "dynamicImport": true
8
- },
9
- "transform": {
10
- "decoratorMetadata": true,
11
- "legacyDecorator": true
12
- },
13
- "keepClassNames": true,
14
- "externalHelpers": true,
15
- "loose": true
16
- },
17
- "module": {
18
- "type": "es6"
19
- },
20
- "sourceMaps": true,
21
- "exclude": [
22
- "jest.config.ts",
23
- ".*\\.spec.tsx?$",
24
- ".*\\.test.tsx?$",
25
- "./src/jest-setup.ts$",
26
- "./**/jest-setup.ts$"
27
- ]
28
- }
package/README.md DELETED
@@ -1,7 +0,0 @@
1
- # mylib
2
-
3
- This library was generated with [Nx](https://nx.dev).
4
-
5
- ## Building
6
-
7
- Run `nx build mylib` to build the library.
package/eslint.config.mjs DELETED
@@ -1,22 +0,0 @@
1
- import baseConfig from '../../eslint.config.mjs';
2
-
3
- export default [
4
- ...baseConfig,
5
- {
6
- files: ['**/*.json'],
7
- rules: {
8
- '@nx/dependency-checks': [
9
- 'error',
10
- {
11
- ignoredFiles: [
12
- '{projectRoot}/eslint.config.{js,cjs,mjs}',
13
- '{projectRoot}/rollup.config.{js,ts,mjs,mts,cjs,cts}',
14
- ],
15
- },
16
- ],
17
- },
18
- languageOptions: {
19
- parser: await import('jsonc-eslint-parser'),
20
- },
21
- },
22
- ];
package/rollup.config.cjs DELETED
@@ -1,28 +0,0 @@
1
- const { withNx } = require('@nx/rollup/with-nx');
2
-
3
- module.exports = withNx(
4
- {
5
- main: 'libs/skill-client-websocket/src/index.ts',
6
- outputPath: 'dist/libs/skill-client-websocket',
7
- tsConfig: 'libs/skill-client-websocket/tsconfig.lib.json',
8
- compiler: 'swc',
9
- format: ['esm', "cjs"],
10
- assets: [
11
- {
12
- input: 'libs/skill-client-websocket/',
13
- glob: 'package.json',
14
- output: '.'
15
- },
16
- {
17
- input: 'libs/skill-client-websocket/src/',
18
- glob: '*.json',
19
- output: '.'
20
- }
21
- ]
22
- },
23
- {
24
- // Provide additional rollup configuration here. See: https://rollupjs.org/configuration-options
25
- // e.g.
26
- // output: { sourcemap: true },
27
- }
28
- );
@@ -1 +0,0 @@
1
- declare module 'handlebars/dist/handlebars.min.js';
@@ -1,7 +0,0 @@
1
- import { skillWebsocket } from './skill-client-websocket';
2
-
3
- describe('skillWebsocket', () => {
4
- it('should work', () => {
5
- expect(skillWebsocket()).toEqual('skill-client-websocket');
6
- });
7
- });
@@ -1,130 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-vars */
2
- import { PinsSettings, executePinsList } from '@digipair/engine';
3
-
4
- const WS = typeof WebSocket === 'undefined' ? require('ws') : WebSocket;
5
-
6
- class ClientWebSocketService {
7
- private retryInterval!: number;
8
- private maxRetries!: number;
9
- private retryCount = 0;
10
-
11
- ws: WebSocket | null = null;
12
- cwssForceClose = false;
13
-
14
- async send(params: any, _pinsSettingsList: PinsSettings[], context: any): Promise<any> {
15
- const { websocket = context.websocket, message } = params;
16
- return websocket.ws?.send(JSON.stringify(message));
17
- }
18
-
19
- async close(params: any, _pinsSettingsList: PinsSettings[], context: any): Promise<any> {
20
- const { websocket = context.websocket } = params;
21
- websocket.cwssForceClose = true;
22
- return websocket.ws?.close();
23
- }
24
-
25
- async connect(params: any, pinsSettingsList: PinsSettings[], context: any): Promise<any> {
26
- const {
27
- url = '',
28
- message = [],
29
- open = [],
30
- close = [],
31
- error = [],
32
- retryInterval = 1000,
33
- maxRetries = 10,
34
- } = params;
35
-
36
- this.retryInterval = retryInterval;
37
- this.maxRetries = maxRetries;
38
-
39
- // Crée une nouvelle instance WebSocket
40
- this.ws = new WS(url, { signal: context.protected?.signal }) as WebSocket;
41
-
42
- // Event onopen: Connexion réussie
43
- this.ws.onopen = async () => {
44
- this.retryCount = 0; // Réinitialise le compteur de tentatives après une connexion réussie
45
-
46
- try {
47
- await executePinsList(open, { ...context, websocket: this }, `${context.__PATH__}.open`);
48
- } catch (error: any) {
49
- console.error(error);
50
-
51
- const skillLogger = require('@digipair/skill-logger');
52
- skillLogger.addLog(context, 'ERROR', error.message);
53
- }
54
- };
55
-
56
- // Event onmessage: Réception d'un message
57
- this.ws.onmessage = async (event: any) => {
58
- try {
59
- await executePinsList(message, {
60
- ...context,
61
- message: JSON.parse(event.data),
62
- websocket: this,
63
- }, `${context.__PATH__}.message`);
64
- } catch (error: any) {
65
- console.error(error);
66
-
67
- const skillLogger = require('@digipair/skill-logger');
68
- skillLogger.addLog(context, 'ERROR', error.message);
69
- }
70
- };
71
-
72
- // Event onclose: Déconnexion
73
- this.ws.onclose = async () => {
74
- this.ws = null;
75
- const reconnect = this.cwssForceClose
76
- ? false
77
- : this.reconnectWebSocket(params, pinsSettingsList, context);
78
-
79
- if (!reconnect) {
80
- try {
81
- await executePinsList(close, { ...context, websocket: this }, `${context.__PATH__}.close`);
82
- } catch (error: any) {
83
- console.error(error);
84
-
85
- const skillLogger = require('@digipair/skill-logger');
86
- skillLogger.addLog(context, 'ERROR', error.message);
87
- }
88
- }
89
- };
90
-
91
- // Event onerror: Erreur
92
- this.ws.onerror = async (err: Event) => {
93
- try {
94
- await executePinsList(error, { ...context, error: err, websocket: this }, `${context.__PATH__}.error`);
95
- } catch (error: any) {
96
- console.error(error);
97
-
98
- const skillLogger = require('@digipair/skill-logger');
99
- skillLogger.addLog(context, 'ERROR', error.message);
100
- }
101
-
102
- this.ws?.close(); // Ferme la connexion en cas d'erreur
103
- };
104
-
105
- return this;
106
- }
107
-
108
- private reconnectWebSocket(params: any, pinsSettingsList: PinsSettings[], context: any) {
109
- if (this.retryCount >= this.maxRetries) {
110
- return false;
111
- }
112
-
113
- setTimeout(() => {
114
- this.retryCount++;
115
- this.retryInterval *= 2; // Double l'intervalle entre les tentatives
116
- this.connect(params, pinsSettingsList, context);
117
- }, this.retryInterval);
118
-
119
- return true;
120
- }
121
- }
122
-
123
- export const connect = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
124
- new ClientWebSocketService().connect(params, pinsSettingsList, context);
125
-
126
- export const send = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
127
- new ClientWebSocketService().send(params, pinsSettingsList, context);
128
-
129
- export const close = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
130
- new ClientWebSocketService().close(params, pinsSettingsList, context);
package/tsconfig.json DELETED
@@ -1,16 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "files": [],
4
- "include": [],
5
- "references": [
6
- {
7
- "path": "../skill-logger"
8
- },
9
- {
10
- "path": "../engine"
11
- },
12
- {
13
- "path": "./tsconfig.lib.json"
14
- }
15
- ]
16
- }
package/tsconfig.lib.json DELETED
@@ -1,22 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "rootDir": "src",
5
- "outDir": "dist",
6
- "tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
7
- "emitDeclarationOnly": true,
8
- "module": "esnext",
9
- "moduleResolution": "node",
10
- "forceConsistentCasingInFileNames": true,
11
- "types": ["node"]
12
- },
13
- "include": ["src/**/*.ts"],
14
- "references": [
15
- {
16
- "path": "../skill-logger/tsconfig.lib.json"
17
- },
18
- {
19
- "path": "../engine/tsconfig.lib.json"
20
- }
21
- ]
22
- }
File without changes
File without changes
File without changes