@companion-module/base 1.99.0-0-nightly-feat-split-api-20251221-153951-fa12995 → 1.99.0-nightly-feat-graphics-overhaul-20251222-140818-911eb31

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.
Files changed (126) hide show
  1. package/README.md +11 -12
  2. package/dist/common/json-value.d.ts +1 -0
  3. package/dist/common/json-value.d.ts.map +1 -0
  4. package/dist/common/osc.d.ts +1 -0
  5. package/dist/common/osc.d.ts.map +1 -0
  6. package/dist/entrypoint.d.ts +1 -9
  7. package/dist/entrypoint.d.ts.map +1 -0
  8. package/dist/entrypoint.js +122 -4
  9. package/dist/entrypoint.js.map +1 -1
  10. package/dist/helpers/index.d.ts +1 -0
  11. package/dist/helpers/index.d.ts.map +1 -0
  12. package/dist/helpers/tcp.d.ts +1 -0
  13. package/dist/helpers/tcp.d.ts.map +1 -0
  14. package/dist/helpers/telnet.d.ts +1 -0
  15. package/dist/helpers/telnet.d.ts.map +1 -0
  16. package/dist/helpers/udp.d.ts +1 -0
  17. package/dist/helpers/udp.d.ts.map +1 -0
  18. package/dist/host-api/api.d.ts +402 -0
  19. package/dist/host-api/api.d.ts.map +1 -0
  20. package/dist/host-api/{context.js → api.js} +1 -6
  21. package/dist/host-api/api.js.map +1 -0
  22. package/dist/host-api/ipc-wrapper.d.ts +37 -0
  23. package/dist/host-api/ipc-wrapper.d.ts.map +1 -0
  24. package/dist/host-api/ipc-wrapper.js +128 -0
  25. package/dist/host-api/ipc-wrapper.js.map +1 -0
  26. package/dist/host-api/versions.d.ts +12 -0
  27. package/dist/host-api/versions.d.ts.map +1 -0
  28. package/dist/host-api/versions.js +5 -0
  29. package/dist/host-api/versions.js.map +1 -0
  30. package/dist/index.d.ts +8 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +22 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/instance-base.d.ts +1 -0
  35. package/dist/instance-base.d.ts.map +1 -0
  36. package/dist/internal/actions.d.ts +16 -0
  37. package/dist/internal/actions.d.ts.map +1 -0
  38. package/dist/internal/actions.js +223 -0
  39. package/dist/internal/actions.js.map +1 -0
  40. package/dist/internal/base.d.ts +11 -0
  41. package/dist/internal/base.d.ts.map +1 -0
  42. package/dist/internal/base.js +39 -0
  43. package/dist/internal/base.js.map +1 -0
  44. package/dist/internal/feedback.d.ts +20 -0
  45. package/dist/internal/feedback.d.ts.map +1 -0
  46. package/dist/internal/feedback.js +307 -0
  47. package/dist/internal/feedback.js.map +1 -0
  48. package/dist/internal/upgrade.d.ts +15 -0
  49. package/dist/internal/upgrade.d.ts.map +1 -0
  50. package/dist/internal/upgrade.js +174 -0
  51. package/dist/internal/upgrade.js.map +1 -0
  52. package/dist/manifest.d.ts +1 -0
  53. package/dist/manifest.d.ts.map +1 -0
  54. package/dist/module-api/action.d.ts +1 -0
  55. package/dist/module-api/action.d.ts.map +1 -0
  56. package/dist/module-api/base.d.ts +23 -3
  57. package/dist/module-api/base.d.ts.map +1 -0
  58. package/dist/module-api/base.js +338 -47
  59. package/dist/module-api/base.js.map +1 -1
  60. package/dist/module-api/common.d.ts +1 -0
  61. package/dist/module-api/common.d.ts.map +1 -0
  62. package/dist/module-api/config.d.ts +1 -0
  63. package/dist/module-api/config.d.ts.map +1 -0
  64. package/dist/module-api/enums.d.ts +2 -0
  65. package/dist/module-api/enums.d.ts.map +1 -0
  66. package/dist/module-api/enums.js.map +1 -1
  67. package/dist/module-api/feedback.d.ts +1 -0
  68. package/dist/module-api/feedback.d.ts.map +1 -0
  69. package/dist/module-api/graphics-composite.d.ts +11 -0
  70. package/dist/module-api/graphics-composite.d.ts.map +1 -0
  71. package/dist/module-api/graphics-composite.js +3 -0
  72. package/dist/module-api/graphics-composite.js.map +1 -0
  73. package/dist/module-api/graphics.d.ts +83 -0
  74. package/dist/module-api/graphics.d.ts.map +1 -0
  75. package/dist/module-api/graphics.js +12 -0
  76. package/dist/module-api/graphics.js.map +1 -0
  77. package/dist/module-api/http.d.ts +1 -0
  78. package/dist/module-api/http.d.ts.map +1 -0
  79. package/dist/module-api/index.d.ts +3 -0
  80. package/dist/module-api/index.d.ts.map +1 -0
  81. package/dist/module-api/index.js +2 -0
  82. package/dist/module-api/index.js.map +1 -1
  83. package/dist/module-api/input.d.ts +1 -0
  84. package/dist/module-api/input.d.ts.map +1 -0
  85. package/dist/module-api/preset.d.ts +49 -1
  86. package/dist/module-api/preset.d.ts.map +1 -0
  87. package/dist/module-api/shared-udp-socket.d.ts +4 -2
  88. package/dist/module-api/shared-udp-socket.d.ts.map +1 -0
  89. package/dist/module-api/shared-udp-socket.js +15 -13
  90. package/dist/module-api/shared-udp-socket.js.map +1 -1
  91. package/dist/module-api/style.d.ts +1 -0
  92. package/dist/module-api/style.d.ts.map +1 -0
  93. package/dist/module-api/upgrade.d.ts +1 -0
  94. package/dist/module-api/upgrade.d.ts.map +1 -0
  95. package/dist/module-api/variable.d.ts +1 -0
  96. package/dist/module-api/variable.d.ts.map +1 -0
  97. package/dist/util.d.ts +1 -0
  98. package/dist/util.d.ts.map +1 -0
  99. package/lib/debounce-fn/index.d.ts +83 -0
  100. package/lib/debounce-fn/index.js +78 -0
  101. package/lib/debounce-fn/license +9 -0
  102. package/lib/debounce-fn/readme.md +64 -0
  103. package/package.json +35 -6
  104. package/dist/__mocks__/net.d.ts +0 -30
  105. package/dist/__mocks__/net.js +0 -108
  106. package/dist/__mocks__/net.js.map +0 -1
  107. package/dist/__mocks__/util.d.ts +0 -8
  108. package/dist/__mocks__/util.js +0 -44
  109. package/dist/__mocks__/util.js.map +0 -1
  110. package/dist/helpers/__tests__/tcp.spec.d.ts +0 -1
  111. package/dist/helpers/__tests__/tcp.spec.js +0 -210
  112. package/dist/helpers/__tests__/tcp.spec.js.map +0 -1
  113. package/dist/helpers/__tests__/udp.spec.d.ts +0 -1
  114. package/dist/helpers/__tests__/udp.spec.js +0 -200
  115. package/dist/helpers/__tests__/udp.spec.js.map +0 -1
  116. package/dist/host-api/context.d.ts +0 -59
  117. package/dist/host-api/context.js.map +0 -1
  118. package/dist/logging.d.ts +0 -20
  119. package/dist/logging.js +0 -25
  120. package/dist/logging.js.map +0 -1
  121. package/dist/main.d.ts +0 -8
  122. package/dist/main.js +0 -14
  123. package/dist/main.js.map +0 -1
  124. package/dist/module-api/__tests__/shared-udp-socket.spec.d.ts +0 -1
  125. package/dist/module-api/__tests__/shared-udp-socket.spec.js +0 -272
  126. package/dist/module-api/__tests__/shared-udp-socket.spec.js.map +0 -1
@@ -0,0 +1,64 @@
1
+ # debounce-fn
2
+
3
+ > [Debounce](https://davidwalsh.name/javascript-debounce-function) a function
4
+
5
+ ## Install
6
+
7
+ ```
8
+ $ npm install debounce-fn
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```js
14
+ const debounceFn = require('debounce-fn');
15
+
16
+ window.onresize = debounceFn(() => {
17
+ // Do something on window resize
18
+ }, {wait: 100});
19
+ ```
20
+
21
+ ## API
22
+
23
+ ### debounceFn(input, options?)
24
+
25
+ Returns a debounced function that delays calling the `input` function until after `wait` milliseconds have elapsed since the last time the debounced function was called.
26
+
27
+ It comes with a `.cancel()` method to cancel any scheduled `input` function calls.
28
+
29
+ #### input
30
+
31
+ Type: `Function`
32
+
33
+ Function to debounce.
34
+
35
+ #### options
36
+
37
+ Type: `object`
38
+
39
+ ##### wait
40
+
41
+ Type: `number`\
42
+ Default: `0`
43
+
44
+ Time to wait until the `input` function is called.
45
+
46
+ ##### before
47
+
48
+ Type: `boolean`\
49
+ Default: `false`
50
+
51
+ Trigger the function on the leading edge of the `wait` interval.
52
+
53
+ For example, can be useful for preventing accidental double-clicks on a "submit" button from firing a second time.
54
+
55
+ ##### after
56
+
57
+ Type: `boolean`\
58
+ Default: `true`
59
+
60
+ Trigger the function on the trailing edge of the `wait` interval.
61
+
62
+ ## Related
63
+
64
+ - [p-debounce](https://github.com/sindresorhus/p-debounce) - Debounce promise-returning & async functions
package/package.json CHANGED
@@ -1,16 +1,24 @@
1
1
  {
2
2
  "name": "@companion-module/base",
3
- "version": "1.99.0-0-nightly-feat-split-api-20251221-153951-fa12995",
3
+ "version": "1.99.0-nightly-feat-graphics-overhaul-20251222-140818-911eb31",
4
4
  "type": "commonjs",
5
- "main": "dist/main.js",
6
- "typings": "dist/main.d.ts",
5
+ "main": "dist/index.js",
6
+ "typings": "dist/index.d.ts",
7
7
  "license": "MIT",
8
8
  "repository": "https://github.com/bitfocus/companion-module-base",
9
9
  "scripts": {
10
- "docs:html": "run -BT typedoc --tsconfig tsconfig.build.json --entryPoints src/main.ts --excludePrivate --theme default --out docs"
10
+ "dev": "yarn build:ts --watch",
11
+ "build": "yarn build:json-schema && yarn build:ajv-validator && yarn build:ts",
12
+ "build:ts": "tsc -p tsconfig.build.json",
13
+ "build:json-schema": "json2ts --input assets/manifest.schema.json --output generated/manifest.d.ts --additionalProperties=false",
14
+ "build:ajv-validator": "node tools/schema-compile.mjs",
15
+ "docs:html": "typedoc --tsconfig tsconfig.build.json --entryPoints src/index.ts --excludePrivate --theme default --out docs",
16
+ "lint:raw": "eslint",
17
+ "lint": "yarn lint:raw .",
18
+ "unit": "vitest"
11
19
  },
12
20
  "engines": {
13
- "node": "^18.20 || ^22.21"
21
+ "node": "^18.12 || ^22.8"
14
22
  },
15
23
  "files": [
16
24
  "README.md",
@@ -23,9 +31,30 @@
23
31
  "dependencies": {
24
32
  "ajv": "^8.17.1",
25
33
  "colord": "^2.9.3",
34
+ "ejson": "^2.2.3",
26
35
  "eventemitter3": "^5.0.1",
36
+ "mimic-fn": "^3.1.0",
37
+ "nanoid": "^3.3.11",
38
+ "p-queue": "^6.6.2",
39
+ "p-timeout": "^4.1.0",
27
40
  "tslib": "^2.8.1"
28
41
  },
42
+ "devDependencies": {
43
+ "@companion-module/tools": "^2.4.2",
44
+ "@tsconfig/node18": "^18.2.6",
45
+ "@types/ejson": "^2.2.2",
46
+ "@types/lodash-es": "^4.17.12",
47
+ "@types/node": "^18.19.130",
48
+ "eslint": "^9.39.1",
49
+ "json-schema-to-typescript": "^15.0.4",
50
+ "lodash-es": "^4.17.21",
51
+ "prettier": "^3.7.4",
52
+ "typedoc": "^0.28.15",
53
+ "typescript": "~5.9.3",
54
+ "typescript-eslint": "^8.49.0",
55
+ "vitest": "^4.0.15",
56
+ "vitest-mock-extended": "^3.1.0"
57
+ },
29
58
  "packageManager": "yarn@4.12.0",
30
- "stableVersion": "1.99.0-0"
59
+ "stableVersion": "1.99.0"
31
60
  }
@@ -1,30 +0,0 @@
1
- import { EventEmitter } from 'events';
2
- export declare class Socket extends EventEmitter {
3
- onWrite: ((buff: Buffer, encoding: string) => void) | undefined;
4
- onConnect: ((port: number, host: string) => void) | undefined;
5
- onClose: (() => void) | undefined;
6
- private _connected;
7
- destroyed: boolean;
8
- configOps: Array<any[]>;
9
- constructor();
10
- static mockSockets(): Socket[];
11
- static mockClearSockets(): void;
12
- static mockOnNextSocket(cb: (s: Socket) => void): void;
13
- connect(port: number, host?: string, cb?: () => void): void;
14
- write(buf: Buffer, cb?: () => void): void;
15
- write(buf: Buffer, encoding?: BufferEncoding, cb?: () => void): void;
16
- end(): void;
17
- mockClose(): void;
18
- mockData(data: string): void;
19
- setNoDelay(noDelay?: boolean): void;
20
- setEncoding(encoding?: BufferEncoding): void;
21
- setKeepAlive(enable?: boolean, initialDelay?: number): void;
22
- destroy(): void;
23
- private setConnected;
24
- private setClosed;
25
- private setEnd;
26
- }
27
- declare const _default: {
28
- Socket: typeof Socket;
29
- };
30
- export default _default;
@@ -1,108 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Socket = void 0;
4
- const events_1 = require("events");
5
- const sockets = [];
6
- const onNextSocket = [];
7
- const orgSetImmediate = setImmediate;
8
- class Socket extends events_1.EventEmitter {
9
- onWrite;
10
- onConnect;
11
- onClose;
12
- // private _port: number
13
- // private _host: string
14
- _connected = false;
15
- destroyed = false;
16
- configOps = [];
17
- constructor() {
18
- super();
19
- const cb = onNextSocket.shift();
20
- if (cb) {
21
- cb(this);
22
- }
23
- sockets.push(this);
24
- }
25
- static mockSockets() {
26
- return sockets;
27
- }
28
- static mockClearSockets() {
29
- sockets.length = 0;
30
- }
31
- static mockOnNextSocket(cb) {
32
- onNextSocket.push(cb);
33
- }
34
- // this.emit('connect')
35
- // this.emit('close')
36
- // this.emit('end')
37
- connect(port, host = 'localhost', cb) {
38
- // this._port = port
39
- // this._host = host
40
- if (this.onConnect)
41
- this.onConnect(port, host);
42
- orgSetImmediate(() => {
43
- if (cb) {
44
- cb();
45
- }
46
- this.setConnected();
47
- });
48
- }
49
- write(buf, encodingOrCb, cb) {
50
- const DEFAULT_ENCODING = 'utf-8';
51
- cb = typeof encodingOrCb === 'function' ? encodingOrCb : cb;
52
- const encoding = typeof encodingOrCb === 'function' ? DEFAULT_ENCODING : encodingOrCb;
53
- if (this.onWrite) {
54
- this.onWrite(buf, encoding ?? DEFAULT_ENCODING);
55
- }
56
- if (cb)
57
- cb();
58
- }
59
- end() {
60
- this.setEnd();
61
- this.setClosed();
62
- }
63
- mockClose() {
64
- this.setClosed();
65
- }
66
- mockData(data) {
67
- this.emit('data', data);
68
- }
69
- setNoDelay(noDelay) {
70
- // noop
71
- this.configOps.push(['setNoDelay', noDelay]);
72
- }
73
- setEncoding(encoding) {
74
- // noop
75
- this.configOps.push(['setEncoding', encoding]);
76
- }
77
- setKeepAlive(enable, initialDelay) {
78
- // noop
79
- this.configOps.push(['setKeepAlive', enable, initialDelay]);
80
- }
81
- destroy() {
82
- this.destroyed = true;
83
- }
84
- setConnected() {
85
- if (this._connected !== true) {
86
- this._connected = true;
87
- }
88
- this.emit('connect');
89
- }
90
- setClosed() {
91
- if (this._connected !== false) {
92
- this._connected = false;
93
- }
94
- this.destroyed = true;
95
- this.emit('close');
96
- if (this.onClose)
97
- this.onClose();
98
- }
99
- setEnd() {
100
- if (this._connected !== false) {
101
- this._connected = false;
102
- }
103
- this.emit('end');
104
- }
105
- }
106
- exports.Socket = Socket;
107
- exports.default = { Socket };
108
- //# sourceMappingURL=net.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"net.js","sourceRoot":"","sources":["../../src/__mocks__/net.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AACrC,MAAM,OAAO,GAAkB,EAAE,CAAA;AACjC,MAAM,YAAY,GAA+B,EAAE,CAAA;AAEnD,MAAM,eAAe,GAAG,YAAY,CAAA;AAEpC,MAAa,MAAO,SAAQ,qBAAY;IAChC,OAAO,CAAwD;IAC/D,SAAS,CAAoD;IAC7D,OAAO,CAA0B;IAExC,wBAAwB;IACxB,wBAAwB;IAChB,UAAU,GAAG,KAAK,CAAA;IAEnB,SAAS,GAAG,KAAK,CAAA;IAEjB,SAAS,GAAiB,EAAE,CAAA;IAEnC;QACC,KAAK,EAAE,CAAA;QAEP,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,CAAA;QAC/B,IAAI,EAAE,EAAE,CAAC;YACR,EAAE,CAAC,IAAI,CAAC,CAAA;QACT,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC;IAEM,MAAM,CAAC,WAAW;QACxB,OAAO,OAAO,CAAA;IACf,CAAC;IACM,MAAM,CAAC,gBAAgB;QAC7B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;IACnB,CAAC;IACM,MAAM,CAAC,gBAAgB,CAAC,EAAuB;QACrD,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACtB,CAAC;IACD,uBAAuB;IACvB,qBAAqB;IACrB,mBAAmB;IAEZ,OAAO,CAAC,IAAY,EAAE,IAAI,GAAG,WAAW,EAAE,EAAe;QAC/D,oBAAoB;QACpB,oBAAoB;QAEpB,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC9C,eAAe,CAAC,GAAG,EAAE;YACpB,IAAI,EAAE,EAAE,CAAC;gBACR,EAAE,EAAE,CAAA;YACL,CAAC;YACD,IAAI,CAAC,YAAY,EAAE,CAAA;QACpB,CAAC,CAAC,CAAA;IACH,CAAC;IAGM,KAAK,CAAC,GAAW,EAAE,YAA4C,EAAE,EAAe;QACtF,MAAM,gBAAgB,GAAG,OAAO,CAAA;QAChC,EAAE,GAAG,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3D,MAAM,QAAQ,GAAG,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAA;QACrF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,IAAI,gBAAgB,CAAC,CAAA;QAChD,CAAC;QACD,IAAI,EAAE;YAAE,EAAE,EAAE,CAAA;IACb,CAAC;IACM,GAAG;QACT,IAAI,CAAC,MAAM,EAAE,CAAA;QACb,IAAI,CAAC,SAAS,EAAE,CAAA;IACjB,CAAC;IAEM,SAAS;QACf,IAAI,CAAC,SAAS,EAAE,CAAA;IACjB,CAAC;IACM,QAAQ,CAAC,IAAY;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACxB,CAAC;IAEM,UAAU,CAAC,OAAiB;QAClC,OAAO;QACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;IAC7C,CAAC;IAEM,WAAW,CAAC,QAAyB;QAC3C,OAAO;QACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC/C,CAAC;IAEM,YAAY,CAAC,MAAgB,EAAE,YAAqB;QAC1D,OAAO;QACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAC5D,CAAC;IAEM,OAAO;QACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACtB,CAAC;IAEO,YAAY;QACnB,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACrB,CAAC;IACO,SAAS;QAChB,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;QACxB,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClB,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,EAAE,CAAA;IACjC,CAAC;IACO,MAAM;QACb,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;QACxB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC;CACD;AA/GD,wBA+GC;AAED,kBAAe,EAAE,MAAM,EAAE,CAAA"}
@@ -1,8 +0,0 @@
1
- export declare function runAllTimers(): Promise<void>;
2
- export declare function runTimersUntilNow(): Promise<void>;
3
- export interface ManualPromise<T> extends Promise<T> {
4
- isResolved: boolean;
5
- manualResolve(res: T): void;
6
- manualReject(e: Error): void;
7
- }
8
- export declare function createManualPromise<T>(): ManualPromise<T>;
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runAllTimers = runAllTimers;
4
- exports.runTimersUntilNow = runTimersUntilNow;
5
- exports.createManualPromise = createManualPromise;
6
- const vitest_1 = require("vitest");
7
- const orgSetTimeout = setTimeout;
8
- async function runAllTimers() {
9
- // Run all timers, and wait, multiple times.
10
- // This is to allow timers AND internal promises to resolve in inner functions
11
- for (let i = 0; i < 50; i++) {
12
- vitest_1.vi.runOnlyPendingTimers();
13
- await new Promise((resolve) => orgSetTimeout(resolve, 0));
14
- }
15
- }
16
- async function runTimersUntilNow() {
17
- // Run all timers, and wait, multiple times.
18
- // This is to allow timers AND internal promises to resolve in inner functions
19
- for (let i = 0; i < 50; i++) {
20
- vitest_1.vi.advanceTimersByTime(0);
21
- await new Promise((resolve) => orgSetTimeout(resolve, 0));
22
- }
23
- }
24
- // eslint-disable-next-line @typescript-eslint/promise-function-async
25
- function createManualPromise() {
26
- let resolve = () => null;
27
- let reject = () => null;
28
- const promise = new Promise((resolve0, reject0) => {
29
- resolve = resolve0;
30
- reject = reject0;
31
- });
32
- const manualPromise = promise;
33
- manualPromise.isResolved = false;
34
- manualPromise.manualReject = (err) => {
35
- manualPromise.isResolved = true;
36
- return reject(err);
37
- };
38
- manualPromise.manualResolve = (val) => {
39
- manualPromise.isResolved = true;
40
- return resolve(val);
41
- };
42
- return manualPromise;
43
- }
44
- //# sourceMappingURL=util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/__mocks__/util.ts"],"names":[],"mappings":";;AAGA,oCAOC;AAED,8CAOC;AAQD,kDAoBC;AA/CD,mCAA2B;AAE3B,MAAM,aAAa,GAAG,UAAU,CAAA;AACzB,KAAK,UAAU,YAAY;IACjC,4CAA4C;IAC5C,8EAA8E;IAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,WAAE,CAAC,oBAAoB,EAAE,CAAA;QACzB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1D,CAAC;AACF,CAAC;AAEM,KAAK,UAAU,iBAAiB;IACtC,4CAA4C;IAC5C,8EAA8E;IAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,WAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1D,CAAC;AACF,CAAC;AAOD,qEAAqE;AACrE,SAAgB,mBAAmB;IAClC,IAAI,OAAO,GAAqB,GAAG,EAAE,CAAC,IAAI,CAAA;IAC1C,IAAI,MAAM,GAAyB,GAAG,EAAE,CAAC,IAAI,CAAA;IAC7C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QACpD,OAAO,GAAG,QAAQ,CAAA;QAClB,MAAM,GAAG,OAAO,CAAA;IACjB,CAAC,CAAC,CAAA;IAEF,MAAM,aAAa,GAAqB,OAAc,CAAA;IACtD,aAAa,CAAC,UAAU,GAAG,KAAK,CAAA;IAChC,aAAa,CAAC,YAAY,GAAG,CAAC,GAAG,EAAE,EAAE;QACpC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAA;QAC/B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC,CAAA;IACD,aAAa,CAAC,aAAa,GAAG,CAAC,GAAG,EAAE,EAAE;QACrC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAA;QAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC,CAAA;IAED,OAAO,aAAa,CAAA;AACrB,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,210 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const vitest_1 = require("vitest");
37
- const tcp_js_1 = require("../tcp.js");
38
- const net_1 = require("net");
39
- const MockSocket = net_1.Socket;
40
- vitest_1.vi.mock('net', async () => Promise.resolve().then(() => __importStar(require('../../__mocks__/net.js'))));
41
- // async function sleepImmediate() {
42
- // return new Promise((resolve) => setImmediate(resolve))
43
- // }
44
- (0, vitest_1.describe)('TCP', () => {
45
- // beforeEach(() => {
46
- // createSocketMock.mockClear()
47
- // })
48
- (0, vitest_1.afterEach)(() => {
49
- MockSocket.mockClearSockets();
50
- });
51
- // it('call fail before open', () => {
52
- // const { mockIpcWrapper, moduleTcpSockets } = createDeps()
53
- // const socket = new TCPHelper(mockIpcWrapper, moduleTcpSockets, { type: 'tcp4' })
54
- // expect(() => socket.destroy()).toThrow(/Socket is not open/)
55
- // expect(() => socket.send('', 12, '')).toThrow(/Socket is not open/)
56
- // })
57
- (0, vitest_1.describe)('construct', () => {
58
- (0, vitest_1.it)('ok', () => {
59
- const socket = new tcp_js_1.TCPHelper('1.2.3.4', 852);
60
- try {
61
- (0, vitest_1.expect)(socket).toBeTruthy();
62
- (0, vitest_1.expect)(MockSocket.mockSockets()).toHaveLength(1);
63
- const rawSocket = MockSocket.mockSockets()[0];
64
- (0, vitest_1.expect)(rawSocket.configOps).toHaveLength(2);
65
- (0, vitest_1.expect)(rawSocket.configOps).toEqual([
66
- ['setKeepAlive', true, undefined],
67
- ['setNoDelay', true],
68
- ]);
69
- }
70
- finally {
71
- socket.destroy();
72
- }
73
- });
74
- // it('bad bind', async () => {
75
- // const rawSocket = new MinimalSocket()
76
- // createSocketMock.mockReturnValueOnce(rawSocket as any)
77
- // expect(() => new TCPHelper('1.2.3.4', 852)).toThrow('Unable to bind')
78
- // expect(createSocketMock).toHaveBeenCalledTimes(1)
79
- // expect(rawSocket.bind).toHaveBeenCalledTimes(1)
80
- // expect(rawSocket.bind).toHaveBeenCalledWith(0, undefined)
81
- // })
82
- // it('ok', async () => {
83
- // const rawSocket = new MinimalSocket()
84
- // createSocketMock.mockReturnValueOnce(rawSocket as any)
85
- // rawSocket.bind.mockImplementationOnce(() => {
86
- // // No op
87
- // return rawSocket as any
88
- // })
89
- // const socket = new TCPHelper('1.2.3.4', 852)
90
- // try {
91
- // expect(socket).toBeTruthy()
92
- // expect(createSocketMock).toHaveBeenCalledTimes(1)
93
- // expect(rawSocket.bind).toHaveBeenCalledTimes(1)
94
- // expect(rawSocket.bind).toHaveBeenCalledWith(0, undefined)
95
- // } finally {
96
- // socket.destroy()
97
- // }
98
- // })
99
- // TODO - options
100
- });
101
- // it('error propogation', async () => {
102
- // const rawSocket = new MinimalSocket()
103
- // createSocketMock.mockReturnValueOnce(rawSocket as any)
104
- // rawSocket.bind.mockImplementationOnce(() => rawSocket as any)
105
- // const socket = new TCPHelper('1.2.3.4', 852)
106
- // try {
107
- // expect(socket).toBeTruthy()
108
- // const errorHandler = vi.fn(() => {})
109
- // const statusHandler = vi.fn(() => {})
110
- // socket.on('error', errorHandler)
111
- // socket.on('status_change', statusHandler)
112
- // expect(createSocketMock).toHaveBeenCalledTimes(1)
113
- // rawSocket.emit('error', new Error('My fake error'))
114
- // expect(errorHandler).toHaveBeenCalledTimes(1)
115
- // expect(errorHandler).toHaveBeenCalledWith(new Error('My fake error'))
116
- // expect(statusHandler).toHaveBeenCalledTimes(1)
117
- // expect(statusHandler).toHaveBeenCalledWith(InstanceStatus.UnknownError, 'My fake error')
118
- // } finally {
119
- // socket.destroy()
120
- // }
121
- // })
122
- // describe('listening', () => {
123
- // it('ok', async () => {
124
- // const rawSocket = new MinimalSocket()
125
- // createSocketMock.mockReturnValueOnce(rawSocket as any)
126
- // rawSocket.bind.mockImplementationOnce(() => rawSocket as any)
127
- // const socket = new TCPHelper('1.2.3.4', 852)
128
- // try {
129
- // expect(socket).toBeTruthy()
130
- // const listeningHandler = vi.fn(() => {})
131
- // const statusHandler = vi.fn(() => {})
132
- // socket.on('connect', listeningHandler)
133
- // socket.on('status_change', statusHandler)
134
- // expect(createSocketMock).toHaveBeenCalledTimes(1)
135
- // rawSocket.emit('listening')
136
- // expect(listeningHandler).toHaveBeenCalledTimes(1)
137
- // expect(statusHandler).toHaveBeenCalledTimes(1)
138
- // expect(statusHandler).toHaveBeenCalledWith(InstanceStatus.Ok, undefined)
139
- // } finally {
140
- // socket.destroy()
141
- // }
142
- // })
143
- // // TODO - options
144
- // })
145
- // it('no error handler timeout', () => {
146
- // const rawSocket = new MinimalSocket()
147
- // createSocketMock.mockReturnValueOnce(rawSocket as any)
148
- // rawSocket.bind.mockImplementationOnce(() => rawSocket as any)
149
- // vi.advanceTimersByTimeAsync(10000)
150
- // })
151
- // describe('send', () => {
152
- // const rawSocket = new MinimalSocket()
153
- // rawSocket.bind.mockImplementation(() => rawSocket as any)
154
- // let socket: TCPHelper
155
- // beforeAll(() => {
156
- // createSocketMock.mockReturnValueOnce(rawSocket as any)
157
- // socket = new TCPHelper('1.2.3.4', 852)
158
- // expect(socket).toBeTruthy()
159
- // })
160
- // beforeEach(() => {
161
- // rawSocket.close.mockClear()
162
- // rawSocket.send.mockClear()
163
- // })
164
- // afterAll(() => {
165
- // if (socket) socket.destroy()
166
- // })
167
- // it('destroyed', async () => {
168
- // createSocketMock.mockReturnValueOnce(rawSocket as any)
169
- // const mySocket = new TCPHelper('1.2.3.4', 852)
170
- // expect(mySocket).toBeTruthy()
171
- // mySocket.destroy()
172
- // expect(rawSocket.close).toHaveBeenCalledTimes(1)
173
- // await expect(mySocket.send('test')).rejects.toThrow('Cannot write to destroyed socket')
174
- // })
175
- // it('no message', async () => {
176
- // await expect(socket.send(undefined as any)).rejects.toThrow('No message to send')
177
- // expect(rawSocket.send).toHaveBeenCalledTimes(0)
178
- // })
179
- // it('ok: string', async () => {
180
- // rawSocket.send.mockImplementation((msg, offset, length, cb) => {
181
- // if (!cb) return
182
- // cb(null, length)
183
- // })
184
- // await expect(socket.send('test 123')).resolves.toBeUndefined()
185
- // expect(rawSocket.send).toHaveBeenCalledTimes(1)
186
- // expect(rawSocket.send).toHaveBeenCalledWith('test 123', 852, '1.2.3.4', expect.any(Function))
187
- // })
188
- // it('ok: buffer', async () => {
189
- // rawSocket.send.mockImplementation((msg, offset, length, cb) => {
190
- // if (!cb) return
191
- // cb(null, length)
192
- // })
193
- // const msg = Buffer.from('test 123')
194
- // await expect(socket.send(msg)).resolves.toBeUndefined()
195
- // expect(rawSocket.send).toHaveBeenCalledTimes(1)
196
- // expect(rawSocket.send).toHaveBeenCalledWith(msg, 852, '1.2.3.4', expect.any(Function))
197
- // })
198
- // it('send error', async () => {
199
- // rawSocket.send.mockImplementation((msg, offset, length, cb) => {
200
- // if (!cb) return
201
- // cb(new Error('buffer overflow'), 0)
202
- // })
203
- // const msg = Buffer.from('test 123')
204
- // await expect(socket.send(msg)).rejects.toThrow('buffer overflow')
205
- // expect(rawSocket.send).toHaveBeenCalledTimes(1)
206
- // expect(rawSocket.send).toHaveBeenCalledWith(msg, 852, '1.2.3.4', expect.any(Function))
207
- // })
208
- // })
209
- });
210
- //# sourceMappingURL=tcp.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tcp.spec.js","sourceRoot":"","sources":["../../../src/helpers/__tests__/tcp.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};