diff --git a/.eslintrc.js b/.eslintrc.js index 49b0d7c20..3e0cda0e6 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -22,28 +22,23 @@ module.exports = { rules: { 'global-require': 'off', 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - 'no-unused-vars': 'off', + 'no-unused-vars': ['error', { args: 'none' }], 'no-underscore-dangle': 'off', 'no-param-reassign': 'off', 'no-restricted-syntax': 'off', - camelcase: 'off', 'default-case': 'off', 'consistent-return': 'off', - 'import/order': 'off', 'max-classes-per-file': 'off', 'no-plusplus': 'off', - 'guard-for-in': 'off', 'no-bitwise': 'off', 'class-methods-use-this': 'off', 'no-continue': 'off', - 'prefer-destructuring': 'off', - 'no-use-before-define': 'off', // Typescript rules - '@typescript-eslint/interface-name-prefix': 'off', - '@typescript-eslint/explicit-function-return-type': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': [ + 'error', + { args: 'none' } + ], '@typescript-eslint/naming-convention': 'off', '@typescript-eslint/dot-notation': 'off', '@typescript-eslint/no-use-before-define': 'off', diff --git a/src/bin/mqtt.ts b/src/bin/mqtt.ts index 7f2027a44..74f9f1c13 100755 --- a/src/bin/mqtt.ts +++ b/src/bin/mqtt.ts @@ -13,7 +13,7 @@ import publish from './pub' import subscribe from './sub' // eslint-disable-next-line @typescript-eslint/no-var-requires -const version = require('../../package.json').version +const { version } = require('../../package.json') const helpMe = help({ dir: path.join(__dirname, '../../', 'help'), diff --git a/src/bin/pub.ts b/src/bin/pub.ts index 7f1ef22ba..cabe38a08 100755 --- a/src/bin/pub.ts +++ b/src/bin/pub.ts @@ -8,9 +8,9 @@ import help from 'help-me' import minimist, { type ParsedArgs } from 'minimist' import split2 from 'split2' -import { connect } from '../mqtt' import { type IClientOptions, type IClientPublishOptions } from 'src/lib/client' import { pipeline } from 'stream' +import { connect } from '../mqtt' const helpMe = help({ dir: path.join(__dirname, '../../', 'help'), diff --git a/src/bin/sub.ts b/src/bin/sub.ts index 26b3bef7e..a39e283f1 100755 --- a/src/bin/sub.ts +++ b/src/bin/sub.ts @@ -4,8 +4,8 @@ import path from 'path' import fs from 'fs' import minimist from 'minimist' import help from 'help-me' -import { connect } from '../mqtt' import { type IClientOptions } from 'src/lib/client' +import { connect } from '../mqtt' const helpMe = help({ dir: path.join(__dirname, '../../', 'help'), diff --git a/src/lib/client.ts b/src/lib/client.ts index d18a89481..6eb6dbcb1 100644 --- a/src/lib/client.ts +++ b/src/lib/client.ts @@ -1,7 +1,6 @@ /** * Module dependencies */ -import TopicAliasRecv from './topic-alias-recv' import mqttPacket, { type IAuthPacket, IConnackPacket, @@ -15,17 +14,18 @@ import mqttPacket, { type ISubackPacket, type IConnectPacket, } from 'mqtt-packet' -import DefaultMessageIdProvider, { - type IMessageIdProvider, -} from './default-message-id-provider' import { type DuplexOptions, Writable } from 'readable-stream' import clone from 'rfdc/default' -import * as validations from './validations' import _debug from 'debug' -import Store, { type IStore } from './store' -import handlePacket from './handlers' import type { ClientOptions } from 'ws' import { type ClientRequestArgs } from 'http' +import * as validations from './validations' +import Store, { type IStore } from './store' +import handlePacket from './handlers' +import DefaultMessageIdProvider, { + type IMessageIdProvider, +} from './default-message-id-provider' +import TopicAliasRecv from './topic-alias-recv' import { type DoneCallback, type ErrorWithReasonCode, @@ -1157,7 +1157,7 @@ export default class MqttClient extends TypedEventEmitter { client.log('_handleConnack') diff --git a/test/node/abstract_client.ts b/test/node/abstract_client.ts index cad71e946..7e03cd7aa 100644 --- a/test/node/abstract_client.ts +++ b/test/node/abstract_client.ts @@ -5,6 +5,15 @@ import { assert } from 'chai' import sinon from 'sinon' import fs from 'fs' import levelStore from 'mqtt-level-store' +import { + type IPublishPacket, + type IPubrelPacket, + type ISubackPacket, + type QoS, +} from 'mqtt-packet' +import { type DoneCallback, ErrorWithReasonCode } from 'src/lib/shared' +import { fail } from 'assert' +import { describe, it, beforeEach, afterEach, after } from 'node:test' import Store from '../../src/lib/store' import serverBuilderFn from './server_helpers_for_client_tests' import handlePubrel from '../../src/lib/handlers/pubrel' @@ -18,15 +27,6 @@ import mqtt, { type ISubscriptionMap, type ISubscriptionRequest, } from '../../src' -import { - type IPublishPacket, - type IPubrelPacket, - type ISubackPacket, - type QoS, -} from 'mqtt-packet' -import { type DoneCallback, ErrorWithReasonCode } from 'src/lib/shared' -import { fail } from 'assert' -import { describe, it, beforeEach, afterEach, after } from 'node:test' /** * These tests try to be consistent with names for servers (brokers) and clients, diff --git a/test/node/abstract_store.ts b/test/node/abstract_store.ts index 68df77bbd..077e9b21e 100644 --- a/test/node/abstract_store.ts +++ b/test/node/abstract_store.ts @@ -1,7 +1,7 @@ import { type IPublishPacket, type IPubrelPacket } from 'mqtt-packet' -import { type IStore } from '../../src' import 'should' import { it, beforeEach, afterEach } from 'node:test' +import { type IStore } from '../../src' export default function abstractStoreTest( build: (cb: (err?: Error, store?: IStore) => void) => void, diff --git a/test/node/client.ts b/test/node/client.ts index 0060e4aa2..947c0c75e 100644 --- a/test/node/client.ts +++ b/test/node/client.ts @@ -1,5 +1,4 @@ import { useFakeTimers } from 'sinon' -import mqtt from '../../src' import { assert } from 'chai' import { fork } from 'child_process' import path from 'path' @@ -9,13 +8,14 @@ import mqttPacket from 'mqtt-packet' import { Duplex } from 'readable-stream' import Connection from 'mqtt-connection' import util from 'util' +import _debug from 'debug' +import { type IClientOptions } from 'src/lib/client' +import { describe, it, after } from 'node:test' import getPorts from './helpers/port_list' import serverBuilder from './server_helpers_for_client_tests' -import _debug from 'debug' import { MqttServer } from './server' import abstractClientTests from './abstract_client' -import { type IClientOptions } from 'src/lib/client' -import { describe, it, after } from 'node:test' +import mqtt from '../../src' // eslint-disable-next-line @typescript-eslint/no-var-requires const pkgJson = require('../../package.json') diff --git a/test/node/client_mqtt5.ts b/test/node/client_mqtt5.ts index 708fe9e9e..72f60aa55 100644 --- a/test/node/client_mqtt5.ts +++ b/test/node/client_mqtt5.ts @@ -1,10 +1,10 @@ import { assert } from 'chai' +import { after, describe, it } from 'node:test' import abstractClientTests from './abstract_client' import { MqttServer } from './server' import serverBuilder from './server_helpers_for_client_tests' import getPorts from './helpers/port_list' import mqtt, { type ErrorWithReasonCode } from '../../src' -import { after, describe, it } from 'node:test' const ports = getPorts(1) diff --git a/test/node/keepaliveManager.ts b/test/node/keepaliveManager.ts index 0858731eb..8bbab6ce0 100644 --- a/test/node/keepaliveManager.ts +++ b/test/node/keepaliveManager.ts @@ -1,8 +1,8 @@ import { afterEach, beforeEach, describe, it } from 'node:test' -import KeepaliveManager from '../../src/lib/KeepaliveManager' import { assert } from 'chai' import { useFakeTimers, spy, stub } from 'sinon' import { type MqttClient } from 'src' +import KeepaliveManager from '../../src/lib/KeepaliveManager' function mockedClient(keepalive: number) { return { diff --git a/test/node/message-id-provider.ts b/test/node/message-id-provider.ts index 1f4508e8a..76a37965b 100644 --- a/test/node/message-id-provider.ts +++ b/test/node/message-id-provider.ts @@ -1,6 +1,6 @@ import { assert } from 'chai' -import { DefaultMessageIdProvider, UniqueMessageIdProvider } from '../../src' import { describe, it } from 'node:test' +import { DefaultMessageIdProvider, UniqueMessageIdProvider } from '../../src' describe('message id provider', () => { describe('default', () => { diff --git a/test/node/mqtt.ts b/test/node/mqtt.ts index b16915049..408116a61 100644 --- a/test/node/mqtt.ts +++ b/test/node/mqtt.ts @@ -1,7 +1,7 @@ import fs from 'fs' import path from 'path' -import mqtt, { type IClientOptions } from '../../src' import { describe, it } from 'node:test' +import mqtt, { type IClientOptions } from '../../src' import 'should' describe('mqtt', () => { diff --git a/test/node/mqtt_store.ts b/test/node/mqtt_store.ts index 95ec180c3..5f68d8719 100644 --- a/test/node/mqtt_store.ts +++ b/test/node/mqtt_store.ts @@ -1,5 +1,5 @@ -import { Store } from '../../src' import { describe, it } from 'node:test' +import { Store } from '../../src' import 'should' describe('store in lib/connect/index.js (webpack entry point)', () => { diff --git a/test/node/secure_client.ts b/test/node/secure_client.ts index 1fe1ed900..85b28c57c 100644 --- a/test/node/secure_client.ts +++ b/test/node/secure_client.ts @@ -1,11 +1,11 @@ import path from 'path' import fs from 'fs' +import { assert } from 'chai' +import { describe, it, after } from 'node:test' import mqtt from '../../src' import abstractClientTests from './abstract_client' import { MqttSecureServer, type MqttServerListener } from './server' -import { assert } from 'chai' import 'should' -import { describe, it, after } from 'node:test' import getPorts from './helpers/port_list' const ports = getPorts(5) diff --git a/test/node/server_helpers_for_client_tests.ts b/test/node/server_helpers_for_client_tests.ts index 64fa81947..5be6d101e 100644 --- a/test/node/server_helpers_for_client_tests.ts +++ b/test/node/server_helpers_for_client_tests.ts @@ -1,4 +1,3 @@ -import { MqttServer, MqttSecureServer, type MqttServerListener } from './server' import _debug from 'debug' import path from 'path' @@ -8,6 +7,7 @@ import http from 'http' import WebSocket from 'ws' import MQTTConnection from 'mqtt-connection' import { type Server } from 'net' +import { MqttServer, MqttSecureServer, type MqttServerListener } from './server' const KEY = path.join(__dirname, 'helpers', 'tls-key.pem') const CERT = path.join(__dirname, 'helpers', 'tls-cert.pem') diff --git a/test/node/store.ts b/test/node/store.ts index adbeb0a81..41404f591 100644 --- a/test/node/store.ts +++ b/test/node/store.ts @@ -1,6 +1,6 @@ +import { describe } from 'node:test' import Store from '../../src/lib/store' import abstractTest from './abstract_store' -import { describe } from 'node:test' describe('in-memory store', () => { abstractTest(function test(done) { diff --git a/test/node/unique_message_id_provider_client.ts b/test/node/unique_message_id_provider_client.ts index 8fc593399..14db44def 100644 --- a/test/node/unique_message_id_provider_client.ts +++ b/test/node/unique_message_id_provider_client.ts @@ -1,8 +1,8 @@ +import { describe, after } from 'node:test' import abstractClientTests from './abstract_client' import serverBuilder from './server_helpers_for_client_tests' import { UniqueMessageIdProvider, type IClientOptions } from '../../src' import getPorts from './helpers/port_list' -import { describe, after } from 'node:test' const ports = getPorts(3) diff --git a/test/node/websocket_client.ts b/test/node/websocket_client.ts index f0ba077d9..c38c5dbf0 100644 --- a/test/node/websocket_client.ts +++ b/test/node/websocket_client.ts @@ -2,11 +2,11 @@ import http from 'http' import WebSocket from 'ws' import MQTTConnection from 'mqtt-connection' import assert from 'assert' +import { after, describe, it } from 'node:test' import abstractClientTests from './abstract_client' import getPorts from './helpers/port_list' import { MqttServerNoWait } from './server' import mqtt, { type IClientOptions } from '../../src' -import { after, describe, it } from 'node:test' const ports = getPorts(4)