summaryrefslogtreecommitdiff
path: root/eslint.config.js
diff options
context:
space:
mode:
Diffstat (limited to 'eslint.config.js')
-rw-r--r--eslint.config.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/eslint.config.js b/eslint.config.js
new file mode 100644
index 000000000..172f0ce21
--- /dev/null
+++ b/eslint.config.js
@@ -0,0 +1,43 @@
+import globals from 'globals';
+import js from '@eslint/js';
+import stylistic from '@stylistic/eslint-plugin';
+
+export default [
+ js.configs.recommended,
+
+ {
+ files: ['js/**/*.js', 'plugins/**/*.js'],
+ languageOptions: {
+ ecmaVersion: 2022,
+ sourceType: 'script',
+ globals: {
+ ...globals.browser,
+
+ // Dojo
+ dojo: 'readonly',
+ dijit: 'readonly'
+ }
+ },
+
+ plugins: {
+ '@stylistic/js': stylistic
+ },
+
+ rules: {
+ 'no-console': 'off',
+ 'prefer-const': 'error',
+ 'eqeqeq': ['error', 'always'],
+ 'no-empty': ['error', { 'allowEmptyCatch': true }],
+
+ // Stylistic rules (replacing those deprecated in ESLint)
+ '@stylistic/js/linebreak-style': ['error', 'unix'],
+ '@stylistic/js/eol-last': 'error',
+ '@stylistic/js/no-trailing-spaces': 'error',
+ '@stylistic/js/no-multiple-empty-lines': ['error', { 'max': 2 }],
+ '@stylistic/js/keyword-spacing': ['error', { 'after': true, 'before': true }],
+ '@stylistic/js/block-spacing': ['error', 'always'],
+ '@stylistic/js/computed-property-spacing': ['error', 'never'],
+ '@stylistic/js/max-statements-per-line': ['warn', { 'max': 2 }]
+ }
+ }
+];