From 2ca51429fdd81ab2c5aa4e3ce94ab40e55ab6cca Mon Sep 17 00:00:00 2001 From: chris Date: Sat, 15 Jun 2024 12:08:22 -0700 Subject: [PATCH] update eslint, pin node 22.0.x --- .eslintrc.json | 124 ------------------------------------- .github/workflows/test.yml | 2 +- eslint.config.js | 107 ++++++++++++++++++++++++++++++++ package.json | 11 ++-- 4 files changed, 114 insertions(+), 130 deletions(-) delete mode 100644 .eslintrc.json create mode 100644 eslint.config.js diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 26f5eae..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "plugins": [], - "ignorePatterns": [ - "dist", - "importsJSONfile.with.js", - "importsJSONfile.assert.legacy.js" - ], - "extends": [ - "eslint:recommended", - "plugin:markdown/recommended" - ], - "env": { - "node": true, - "jest": true - }, - "parserOptions": { - "sourceType": "module", - "ecmaVersion": "latest", - "allowImportExportEverywhere": true - }, - "globals": { - "Set": true - }, - "rules": { - "no-trailing-spaces": [2], - "no-unused-vars": [ "error", { - "vars": "all", - "args": "after-used", - "ignoreRestSiblings": false - }], - "global-require": 0, - "no-sequences": 0, - "strict": [2, "never"], - "one-var": [2, { - "let": "always", - "const": "never" - }], - "space-in-parens": [2, "never" ], - "import/newline-after-import": 0, - "indent": [2, 2, { - "flatTernaryExpressions": true, - "VariableDeclarator": { - "let": 2, - "const": 3 - } - }], - "camelcase": [2, {"properties": "never"}], - "no-underscore-dangle": 0, - "func-names": [2, "never"], - "newline-per-chained-call": 0, - "max-len": [2, 80], - "comma-dangle": [2, "never"], - "no-mixed-operators": 0, - "no-plusplus": 0, - "no-console": 0, - "semi": [2, "never"], - "nonblock-statement-body-position": 0, - "arrow-parens": [2, "as-needed"], - "space-before-function-paren": [2, "always"], - "function-paren-newline": 0, - "consistent-return": 0, - "array-callback-return": 0, - "prefer-const": 0, - "prefer-object-spread": 0, - "curly": 0, - "operator-linebreak": 0, - "no-param-reassign": 0, - "key-spacing": [2], - "implicit-arrow-linebreak": 0, - "no-shadow": [0, "warn", { - "allow": [ "err" ] - } - ], - "prefer-arrow-callback": [2, { - "allowNamedFunctions": true - }], - "no-return-assign": 0, - "no-use-before-define": [2, "nofunc"], - "no-nested-ternary": 0, - "array-bracket-spacing": [2, "never"], - "prefer-destructuring": 0, - "class-methods-use-this": 0, - "no-confusing-arrow": 0 - }, - "overrides": [{ - "files": ["*.ts"], - "plugins": ["@typescript-eslint"], - "extends": ["plugin:@typescript-eslint/recommended"], - "parser": "@typescript-eslint/parser", - "rules": { - "@typescript-eslint/semi": ["error", "never"], - "@typescript-eslint/no-explicit-any": 0, - "no-extra-semi": "off", - "@typescript-eslint/no-extra-semi": "error", - "comma-dangle": "off", - "@typescript-eslint/comma-dangle": ["error", { - "tuples": "never", - "arrays": "never", - "objects": "never", - "imports": "never", - "exports": "never", - "functions": "never" - }], - "@typescript-eslint/member-delimiter-style": ["error", { - "multiline": { - "delimiter": "comma", - "requireLast": false - }, - "singleline": { - "delimiter": "comma", - "requireLast": false - }, - "overrides": { - "interface": { - "multiline": { - "delimiter": "semi", - "requireLast": false - } - } - } - }] - } - }] -} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 92b2ffa..af3d607 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - node-version: [18.x, 20.x, 22.1.x] + node-version: [18.x, 20.x, 22.0.x] os: [ubuntu-latest, windows-latest] exclude: - os: windows-latest diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..f3e5700 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,107 @@ +import js from '@eslint/js' +import markdown from 'eslint-plugin-markdown' +import tseslint from 'typescript-eslint' + +export default [ + { + ignores: [ + "tests/**/dist", + "tests/local/importsJSONfile.with.js", + "tests/local/importsJSONfile.assert.legacy.js" + ] + }, + js.configs.recommended, + ...tseslint.configs.recommended, + { + files: ["**/*.ts", "**/*.js"], + rules: { + "@typescript-eslint/no-unused-expressions": 0, + "@typescript-eslint/no-explicit-any": 0, + "comma-dangle": "off" + } + }, + ...markdown.configs.recommended, + { + ignores: [ + "src/esmock.d.ts" + ], + languageOptions: { + ecmaVersion: 2022, + sourceType: "module", + globals: { + Set: true, + console: true, + setTimeout: true, + fetch: true, + process: true, + URL: true, + global: true, + describe: true, + it: true, + test: true, + expect: true + } + }, + rules: { + "no-trailing-spaces": [2], + "no-unused-vars": ["error", { + "vars": "all", + "args": "after-used", + "ignoreRestSiblings": false + }], + "global-require": 0, + "no-sequences": 0, + "strict": [2, "never"], + "one-var": [2, { + "let": "always", + "const": "never" + }], + "space-in-parens": [2, "never"], + "import/newline-after-import": 0, + "indent": [2, 2, { + "flatTernaryExpressions": true, + "VariableDeclarator": { + "let": 2, + "const": 3 + } + }], + "camelcase": [2, {"properties": "never"}], + "no-underscore-dangle": 0, + "func-names": [2, "never"], + "newline-per-chained-call": 0, + "max-len": [2, 80], + "comma-dangle": [2, "never"], + "no-mixed-operators": 0, + "no-plusplus": 0, + "no-console": 0, + "semi": [2, "never"], + "nonblock-statement-body-position": 0, + "arrow-parens": [2, "as-needed"], + "space-before-function-paren": [2, "always"], + "function-paren-newline": 0, + "consistent-return": 0, + "array-callback-return": 0, + "prefer-const": 0, + "prefer-object-spread": 0, + "curly": 0, + "operator-linebreak": 0, + "no-param-reassign": 0, + "key-spacing": [2], + "implicit-arrow-linebreak": 0, + "no-shadow": [0, "warn", { + "allow": ["err"] + } + ], + "prefer-arrow-callback": [2, { + "allowNamedFunctions": true + }], + "no-return-assign": 0, + "no-use-before-define": [2, "nofunc"], + "no-nested-ternary": 0, + "array-bracket-spacing": [2, "never"], + "prefer-destructuring": 0, + "class-methods-use-this": 0, + "no-confusing-arrow": 0 + } + } +] diff --git a/package.json b/package.json index 3fe1028..e311708 100644 --- a/package.json +++ b/package.json @@ -63,11 +63,12 @@ "resolvewithplus": "^2.1.5" }, "devDependencies": { - "c8": "^9.1.0", - "eslint": "^8.57.0", - "eslint-plugin-markdown": "^3.0.1", - "@typescript-eslint/parser": "^7.1.0", - "@typescript-eslint/eslint-plugin": "^7.1.0" + "c8": "^10.1.2", + "eslint": "^9.5.0", + "eslint-plugin-markdown": "^5.0.0", + "typescript-eslint": "^8.0.0-alpha.30", + "@typescript-eslint/parser": "^8.0.0-alpha.30", + "@typescript-eslint/eslint-plugin": "^8.0.0-alpha.30" }, "scripts": { "test:install": "cd tests && npm run install:all",