diff --git a/.eslintignore b/.eslintignore index a5f10738..08518b0b 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,2 @@ node_modules -!.eslintrc.cjs +!.eslint.config.js diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 5617d8e6..00000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - env: { - node: true, - }, - reportUnusedDisableDirectives: true, - extends: [ - 'eslint-config-seekingalpha-base', - 'eslint-config-seekingalpha-node', - ], - rules: { - 'import/no-anonymous-default-export': 'off', - 'import/no-default-export': 'off', - 'import/extensions': 'off', - 'n/file-extension-in-import': 'off', - }, -}; diff --git a/.husky/install.js b/.husky/install.js index 994c781a..2104eafd 100644 --- a/.husky/install.js +++ b/.husky/install.js @@ -1,8 +1,9 @@ try { + // eslint-disable-next-line import/dynamic-import-chunkname const husky = await import('husky'); husky.default(); -} catch (e) { - if (e.code !== 'ERR_MODULE_NOT_FOUND') { - throw e; +} catch (err) { + if (err.code !== 'ERR_MODULE_NOT_FOUND') { + throw err; } } diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..6386d79d --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,30 @@ +import globals from 'globals'; +import baseConfig from 'eslint-config-seekingalpha-base/flat.js'; +import nodeConfig from 'eslint-config-seekingalpha-node/flat.js'; + +export default { + languageOptions: { + sourceType: 'module', + globals: { + ...globals.node, + }, + }, + linterOptions: { + reportUnusedDisableDirectives: true, + }, + plugins: { + ...baseConfig.plugins, + ...nodeConfig.plugins, + }, + rules: { + ...baseConfig.rules, + ...nodeConfig.rules, + 'import/no-anonymous-default-export': 'off', + 'import/no-default-export': 'off', + 'import/extensions': 'off', + 'n/file-extension-in-import': 'off', + }, + settings: { + ...baseConfig.settings, + }, +}; diff --git a/eslint.config.temp.js b/eslint.config.temp.js deleted file mode 100644 index 8d4ee1a8..00000000 --- a/eslint.config.temp.js +++ /dev/null @@ -1,11 +0,0 @@ -import baseConfig from 'eslint-config-seekingalpha-base/flat.js'; -import nodeConfig from 'eslint-config-seekingalpha-node/flat.js'; - -export default [ - { - rules: { - ...baseConfig.rules, - ...nodeConfig.rules, - }, - }, -]; diff --git a/package.json b/package.json index 63eecee1..8a21fc6d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "seekingalpha-javascript-style", - "version": "5.38.104", + "version": "6.0.0", "description": "Set of linting rules, guides and best practices for best Javascript code", "main": "index.js", "type": "module", @@ -9,7 +9,7 @@ }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "lint": "eslint --ext .js .", + "lint": "eslint .", "prepare": "node .husky/install.js", "prettier:check": "prettier --no-editorconfig --check .", "prettier:write": "prettier --no-editorconfig --write ." @@ -41,19 +41,20 @@ "*.{yml,yaml,md,mdx,html,json}": "prettier --write", "*.js": [ "prettier --write", - "eslint --ext .js" + "eslint" ] }, "devDependencies": { "@seekingalpha/prettier-config-samw": "2.0.0", "eslint": "8.57.1", - "eslint-config-seekingalpha-base": "9.0.0", + "eslint-config-seekingalpha-base": "9.1.0", "eslint-config-seekingalpha-node": "7.0.0", - "eslint-plugin-array-func": "4.0.0", + "eslint-plugin-array-func": "5.0.2", "eslint-plugin-import": "2.31.0", "eslint-plugin-n": "17.16.2", "eslint-plugin-promise": "7.2.1", "eslint-plugin-unicorn": "56.0.1", + "globals": "16.0.0", "husky": "9.1.7", "lint-staged": "15.4.3", "prettier": "3.5.3"