diff --git a/index.js b/index.js index 6c79114..91f0e59 100644 --- a/index.js +++ b/index.js @@ -1034,7 +1034,7 @@ class ModbusRTU extends EventEmitter { } const code = 15; - let i = 0; + let i; // set state variables this._transactions[this._port._transactionIdWrite] = { diff --git a/package-lock.json b/package-lock.json index 139cf4a..493b06e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,15 +9,15 @@ "version": "8.0.23", "license": "ISC", "dependencies": { - "debug": "^4.3.1" + "debug": "^4.4.3" }, "devDependencies": { - "@eslint/js": "^9.39.1", - "chai": "^4.5.0", - "chai-as-promised": "^7.1.2", + "@eslint/js": "^10.0.1", + "chai": "^6.2.2", + "chai-as-promised": "^8.0.2", "clean-jsdoc-theme": "^4.3.0", "eslint": "^10.0.3", - "globals": "^16.5.0", + "globals": "^17.4.0", "jsdoc": "^4.0.5", "mocha": "^11.7.5", "mockery": "^2.1.0", @@ -420,16 +420,24 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.4", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", - "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz", + "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==", "dev": true, "license": "MIT", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "eslint": "^10.0.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/@eslint/object-schema": { @@ -1241,16 +1249,6 @@ "dev": true, "license": "Python-2.0" }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1398,35 +1396,26 @@ } }, "node_modules/chai": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", - "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "dev": true, "license": "MIT", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.1.0" - }, "engines": { - "node": ">=4" + "node": ">=18" } }, "node_modules/chai-as-promised": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.2.tgz", - "integrity": "sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-8.0.2.tgz", + "integrity": "sha512-1GadL+sEJVLzDjcawPM4kjfnL+p/9vrxiEUonowKOAzvVg0PixJUdtuDzdkDeQhK3zfOE76GqGkZIQ7/Adcrqw==", "dev": true, - "license": "WTFPL", + "license": "MIT", "dependencies": { - "check-error": "^1.0.2" + "check-error": "^2.1.1" }, "peerDependencies": { - "chai": ">= 2.1.2 < 6" + "chai": ">= 2.1.2 < 7" } }, "node_modules/chalk": { @@ -1447,16 +1436,13 @@ } }, "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", "dev": true, "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.2" - }, "engines": { - "node": "*" + "node": ">= 16" } }, "node_modules/chownr": { @@ -1736,19 +1722,6 @@ "node": ">=0.10.0" } }, - "node_modules/deep-eql": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", - "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -2255,16 +2228,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -2337,9 +2300,9 @@ } }, "node_modules/globals": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", - "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.4.0.tgz", + "integrity": "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==", "dev": true, "license": "MIT", "engines": { @@ -3031,16 +2994,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.1" - } - }, "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -3917,16 +3870,6 @@ "dev": true, "license": "ISC" }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", diff --git a/package.json b/package.json index 3ab0f33..226c3b2 100644 --- a/package.json +++ b/package.json @@ -48,12 +48,12 @@ }, "homepage": "https://github.com/yaacov/node-modbus-serial#readme", "devDependencies": { - "@eslint/js": "^9.39.1", - "chai": "^4.5.0", - "chai-as-promised": "^7.1.2", + "@eslint/js": "^10.0.1", + "chai": "^6.2.2", + "chai-as-promised": "^8.0.2", "clean-jsdoc-theme": "^4.3.0", "eslint": "^10.0.3", - "globals": "^16.5.0", + "globals": "^17.4.0", "jsdoc": "^4.0.5", "mocha": "^11.7.5", "mockery": "^2.1.0", @@ -63,7 +63,7 @@ "webbluetooth": "^3.6.0" }, "dependencies": { - "debug": "^4.3.1" + "debug": "^4.4.3" }, "optionalDependencies": { "serialport": "^12.0.0" diff --git a/ports/asciiport.js b/ports/asciiport.js index 12708bf..386e55a 100644 --- a/ports/asciiport.js +++ b/ports/asciiport.js @@ -218,7 +218,7 @@ class AsciiPort extends EventEmitter { return; } - let length = null; + let length; // remember current unit and command this._id = data[0]; diff --git a/ports/c701port.js b/ports/c701port.js index d8d3e3e..b97c55d 100644 --- a/ports/c701port.js +++ b/ports/c701port.js @@ -56,7 +56,7 @@ class UdpPort extends EventEmitter { // wait for answer this._client.on("message", function(data) { - let buffer = null; + let buffer; // check expected length if (modbus.length < 6) return; @@ -148,7 +148,7 @@ class UdpPort extends EventEmitter { return; } - let length = null; + let length; // remember current unit and command this._id = data[0]; diff --git a/ports/rtubufferedport.js b/ports/rtubufferedport.js index 940b1d2..cf74563 100644 --- a/ports/rtubufferedport.js +++ b/ports/rtubufferedport.js @@ -203,7 +203,7 @@ class RTUBufferedPort extends EventEmitter { return; } - let length = null; + let length; // remember current unit and command this._id = data[0]; diff --git a/ports/telnetport.js b/ports/telnetport.js index b14906e..ce1a3c7 100644 --- a/ports/telnetport.js +++ b/ports/telnetport.js @@ -227,7 +227,7 @@ class TelnetPort extends EventEmitter { return; } - let length = null; + let length; // remember current unit and command this._id = data[0]; diff --git a/ports/testport.js b/ports/testport.js index 2b05ef9..d17c330 100644 --- a/ports/testport.js +++ b/ports/testport.js @@ -71,12 +71,12 @@ class TestPort extends EventEmitter { * @param {Buffer} data */ write(data) { - let buffer = null; - let length = null; - let address = null; - let value = null; - let state = null; - let i = null; + let buffer; + let length; + let address; + let value; + let state; + let i; if(data.length < MIN_DATA_LENGTH) { modbusSerialDebug("expected length of data is to small - minimum is " + MIN_DATA_LENGTH); diff --git a/ports/udpport.js b/ports/udpport.js index 0d79e94..abd4d86 100644 --- a/ports/udpport.js +++ b/ports/udpport.js @@ -28,10 +28,11 @@ class ModbusUdpPort extends EventEmitter { this.ip = ip; this.openFlag = false; this._transactionIdWrite = 1; - this.port = options.port || MODBUS_PORT; - // options - if (typeof(options) === "undefined") options = {}; + if (typeof options === "undefined") { + options = {}; + } + this.port = options.port || MODBUS_PORT; // create a socket this._client = dgram.createSocket("udp4"); diff --git a/servers/servertcp_handler.js b/servers/servertcp_handler.js index 925445d..a2b7785 100644 --- a/servers/servertcp_handler.js +++ b/servers/servertcp_handler.js @@ -140,9 +140,9 @@ function _handleReadCoilsOrInputDiscretes(requestBuffer, vector, unitID, callbac msg: "Invalid length" }); - let i = 0; - let cb = null; - let promiseOrValue = null; + let i; + let cb; + let promiseOrValue; if (isGetCoil && vector.getCoil.length === 3) { for (i = 0; i < length; i++) { diff --git a/test/servers/servertcp.enron.test.js b/test/servers/servertcp.enron.test.js index 721fdf6..696bf01 100644 --- a/test/servers/servertcp.enron.test.js +++ b/test/servers/servertcp.enron.test.js @@ -1,7 +1,8 @@ "use strict"; const chai = require("chai"); -const chaiAsPromised = require("chai-as-promised"); +const chaiAsPromisedModule = require("chai-as-promised"); +const chaiAsPromised = chaiAsPromisedModule.default ?? chaiAsPromisedModule; // Load chai-as-promised support chai.use(chaiAsPromised); // Initialise should API (attaches as a property on Object)