signalk-mosquitto
Version:
SignalK plugin for managing Mosquitto MQTT broker with bridge connections and security
105 lines (104 loc) • 3.04 kB
JavaScript
const js = require('@eslint/js');
const typescript = require('@typescript-eslint/eslint-plugin');
const typescriptParser = require('@typescript-eslint/parser');
const prettier = require('eslint-plugin-prettier');
const prettierConfig = require('eslint-config-prettier');
module.exports = [
js.configs.recommended,
{
files: ['src/**/*.ts'],
languageOptions: {
parser: typescriptParser,
parserOptions: {
ecmaVersion: 2020,
sourceType: 'module',
project: './tsconfig.json',
},
globals: {
process: 'readonly',
Buffer: 'readonly',
__dirname: 'readonly',
__filename: 'readonly',
module: 'readonly',
require: 'readonly',
exports: 'readonly',
global: 'readonly',
console: 'readonly',
},
},
plugins: {
'@typescript-eslint': typescript,
prettier: prettier,
},
rules: {
...typescript.configs.recommended.rules,
'@typescript-eslint/explicit-function-return-type': 'warn',
'@typescript-eslint/no-explicit-any': 'off', // Needed for SignalK app object
'@typescript-eslint/no-unused-vars': 'error',
'no-var': 'error',
'prefer-const': 'error',
'prettier/prettier': 'error',
// Disable conflicting rules
'no-undef': 'off', // TypeScript handles this
'no-unused-vars': 'off', // Use @typescript-eslint version
},
},
{
files: ['src/web/**/*.ts'],
languageOptions: {
parser: typescriptParser,
parserOptions: {
ecmaVersion: 2020,
sourceType: 'module',
project: './tsconfig.json',
},
globals: {
window: 'readonly',
document: 'readonly',
HTMLElement: 'readonly',
HTMLInputElement: 'readonly',
HTMLSelectElement: 'readonly',
HTMLFormElement: 'readonly',
HTMLButtonElement: 'readonly',
Event: 'readonly',
console: 'readonly',
alert: 'readonly',
confirm: 'readonly',
fetch: 'readonly',
Response: 'readonly',
setTimeout: 'readonly',
setInterval: 'readonly',
clearTimeout: 'readonly',
clearInterval: 'readonly',
Promise: 'readonly',
Date: 'readonly',
JSON: 'readonly',
parseInt: 'readonly',
parseFloat: 'readonly',
Math: 'readonly',
},
},
plugins: {
'@typescript-eslint': typescript,
prettier: prettier,
},
rules: {
...typescript.configs.recommended.rules,
'@typescript-eslint/explicit-function-return-type': 'warn',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-unused-vars': 'error',
'no-var': 'error',
'prefer-const': 'error',
'prettier/prettier': 'error',
// Disable conflicting rules
'no-undef': 'off',
'no-unused-vars': 'off',
},
},
{
...prettierConfig,
},
{
ignores: ['node_modules/**', 'plugin/**', 'public/js/**', '*.js', '.husky/**'],
},
];