@lichens-innovation/ts-common 1.2.3 → 1.3.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.
- package/dist/utils/vitest.setup.d.ts +2 -0
- package/dist/utils/vitest.setup.d.ts.map +1 -0
- package/dist/utils/vitest.setup.js +21 -0
- package/dist/utils/vitest.setup.js.map +1 -0
- package/dist/utils/websocket.utils.d.ts +4 -0
- package/dist/utils/websocket.utils.d.ts.map +1 -0
- package/dist/utils/websocket.utils.js +23 -0
- package/dist/utils/websocket.utils.js.map +1 -0
- package/package.json +4 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitest.setup.d.ts","sourceRoot":"","sources":["../../src/utils/vitest.setup.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { vi } from 'vitest';
|
|
2
|
+
// Mock WebSocket for Node.js environment
|
|
3
|
+
class MockWebSocket {
|
|
4
|
+
static CONNECTING = 0;
|
|
5
|
+
static OPEN = 1;
|
|
6
|
+
static CLOSING = 2;
|
|
7
|
+
static CLOSED = 3;
|
|
8
|
+
CONNECTING = 0;
|
|
9
|
+
OPEN = 1;
|
|
10
|
+
CLOSING = 2;
|
|
11
|
+
CLOSED = 3;
|
|
12
|
+
readyState = MockWebSocket.CONNECTING;
|
|
13
|
+
close = vi.fn();
|
|
14
|
+
send = vi.fn();
|
|
15
|
+
constructor(_url, _protocols) { }
|
|
16
|
+
}
|
|
17
|
+
// Only set the global if WebSocket is not already defined
|
|
18
|
+
if (typeof globalThis.WebSocket === 'undefined') {
|
|
19
|
+
globalThis.WebSocket = MockWebSocket;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=vitest.setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitest.setup.js","sourceRoot":"","sources":["../../src/utils/vitest.setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE5B,yCAAyC;AACzC,MAAM,aAAa;IACjB,MAAM,CAAU,UAAU,GAAG,CAAC,CAAC;IAC/B,MAAM,CAAU,IAAI,GAAG,CAAC,CAAC;IACzB,MAAM,CAAU,OAAO,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAU,MAAM,GAAG,CAAC,CAAC;IAElB,UAAU,GAAG,CAAC,CAAC;IACf,IAAI,GAAG,CAAC,CAAC;IACT,OAAO,GAAG,CAAC,CAAC;IACZ,MAAM,GAAG,CAAC,CAAC;IAEpB,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;IACtC,KAAK,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAChB,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAEf,YAAY,IAAY,EAAE,UAA8B,IAAG,CAAC;;AAG9D,0DAA0D;AAC1D,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;IAC/C,UAA6D,CAAC,SAAS,GAAG,aAAa,CAAC;AAC3F,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const isWsClosable: (ws?: WebSocket | null) => ws is WebSocket;
|
|
2
|
+
export declare const isWsOpenOrConnecting: (ws?: WebSocket | null) => ws is WebSocket;
|
|
3
|
+
export declare const closeWebSocket: (ws?: WebSocket | null) => void;
|
|
4
|
+
//# sourceMappingURL=websocket.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.utils.d.ts","sourceRoot":"","sources":["../../src/utils/websocket.utils.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,GAAI,KAAK,SAAS,GAAG,IAAI,KAAG,EAAE,IAAI,SAG1D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,KAAK,SAAS,GAAG,IAAI,KAAG,EAAE,IAAI,SAGlE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,KAAK,SAAS,GAAG,IAAI,SAQnD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { isNullish } from "./types.utils";
|
|
2
|
+
const WEBSOCKET_CONNECT_STATES = [WebSocket.CONNECTING, WebSocket.OPEN];
|
|
3
|
+
export const isWsClosable = (ws) => {
|
|
4
|
+
if (isNullish(ws))
|
|
5
|
+
return false;
|
|
6
|
+
return WEBSOCKET_CONNECT_STATES.includes(ws.readyState);
|
|
7
|
+
};
|
|
8
|
+
export const isWsOpenOrConnecting = (ws) => {
|
|
9
|
+
if (isNullish(ws))
|
|
10
|
+
return false;
|
|
11
|
+
return WEBSOCKET_CONNECT_STATES.includes(ws.readyState);
|
|
12
|
+
};
|
|
13
|
+
export const closeWebSocket = (ws) => {
|
|
14
|
+
if (isNullish(ws) || !isWsClosable(ws))
|
|
15
|
+
return;
|
|
16
|
+
try {
|
|
17
|
+
ws.close();
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
// do nothing (best effort to close, ignore unexpected errors)
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=websocket.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.utils.js","sourceRoot":"","sources":["../../src/utils/websocket.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,wBAAwB,GAAa,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAU,CAAC;AAE3F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAqB,EAAmB,EAAE;IACrE,IAAI,SAAS,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EAAqB,EAAmB,EAAE;IAC7E,IAAI,SAAS,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAqB,EAAE,EAAE;IACtD,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAAE,OAAO;IAE/C,IAAI,CAAC;QACH,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;IAChE,CAAC;AACH,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lichens-innovation/ts-common",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Reusable generic typescript utilities, types, constants, helpers",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -27,6 +27,9 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"date-fns": "^3.0.0"
|
|
29
29
|
},
|
|
30
|
+
"engines": {
|
|
31
|
+
"node": ">=20.0.0"
|
|
32
|
+
},
|
|
30
33
|
"devDependencies": {
|
|
31
34
|
"@eslint/js": "^9.39.1",
|
|
32
35
|
"@faker-js/faker": "^10.1.0",
|