UNPKG

signalk-mosquitto

Version:

SignalK plugin for managing Mosquitto MQTT broker with bridge connections and security

105 lines (104 loc) 3.04 kB
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/**'], }, ];