Skip to content

Commit

Permalink
Merge pull request #247 from msgpack/upgrade_eslint
Browse files Browse the repository at this point in the history
Upgrade eslint, deps, and tsconfig libs
  • Loading branch information
gfx authored Jan 26, 2025
2 parents 12046e7 + 90ed0ff commit 2209b7e
Show file tree
Hide file tree
Showing 16 changed files with 2,442 additions and 1,200 deletions.
1 change: 0 additions & 1 deletion .eslintignore

This file was deleted.

89 changes: 0 additions & 89 deletions .eslintrc.js

This file was deleted.

20 changes: 12 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,26 @@ jobs:
strategy:
matrix:
node-version:
- '16'
- '18'
- '20'
- '22'

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
uses: actions/setup-node@v4
with:
cache: npm
node-version: ${{ matrix.node-version }}

- run: npm install -g nyc codecov
- run: npm install -g nyc
- run: npm ci
- run: npm run test:cover
- run: codecov -f coverage/*.json

- uses: codecov/codecov-action@v5
with:
files: coverage/coverage-final.json
token: ${{ secrets.CODECOV_TOKEN }}

browser:
runs-on: ubuntu-latest
Expand All @@ -37,12 +41,12 @@ jobs:
browser: [ChromeHeadless, FirefoxHeadless]

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v2
uses: actions/setup-node@v4
with:
cache: npm
node-version: '18'
node-version: '22'
- run: npm install -g npm
- run: npm ci
- run: npm run test:browser -- --browsers ${{ matrix.browser }}
1 change: 1 addition & 0 deletions .github/workflows/fuzz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ jobs:
node-version: "18"

# npm@9 may fail with https://github.com/npm/cli/issues/6723
# npm@10 may fail with "GitFetcher requires an Arborist constructor to pack a tarball"
- run: npm install -g npm@8
- run: npm ci
- run: npm run test:fuzz
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"files.eol": "\n",
"editor.tabSize": 2,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
"source.fixAll.eslint": "explicit"
},
"cSpell.words": [
"instanceof",
Expand Down
122 changes: 122 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
import path from "node:path";
import { fileURLToPath } from "node:url";

import { fixupConfigRules, fixupPluginRules } from "@eslint/compat";
import typescriptEslintEslintPlugin from "@typescript-eslint/eslint-plugin";
import tsdoc from "eslint-plugin-tsdoc";
import tsParser from "@typescript-eslint/parser";
import js from "@eslint/js";
import { FlatCompat } from "@eslint/eslintrc";

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended,
allConfig: js.configs.all
});

export default [{
ignores: ["**/*.js"],
}, ...fixupConfigRules(compat.extends(
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:import/recommended",
"plugin:import/typescript",
"prettier",
)), {
plugins: {
"@typescript-eslint": fixupPluginRules(typescriptEslintEslintPlugin),
tsdoc,
},

languageOptions: {
parser: tsParser,
ecmaVersion: 5,
sourceType: "script",

parserOptions: {
project: "./tsconfig.json",
},
},

settings: {},

rules: {
"no-constant-condition": ["warn", {
checkLoops: false,
}],

"no-useless-escape": "warn",
"no-console": "warn",
"no-var": "warn",
"no-return-await": "warn",
"prefer-const": "warn",
"guard-for-in": "warn",
curly: "warn",
"no-param-reassign": "warn",
"prefer-spread": "warn",
"import/no-unresolved": "off",
"import/no-cycle": "error",
"import/no-default-export": "warn",
"tsdoc/syntax": "warn",
"@typescript-eslint/await-thenable": "warn",

"@typescript-eslint/array-type": ["warn", {
default: "generic",
}],

"@typescript-eslint/naming-convention": ["warn", {
selector: "default",
format: ["camelCase", "UPPER_CASE", "PascalCase"],
leadingUnderscore: "allow",
}, {
selector: "typeLike",
format: ["PascalCase"],
leadingUnderscore: "allow",
}],

"@typescript-eslint/restrict-plus-operands": "warn",
//"@typescript-eslint/no-throw-literal": "warn",
"@typescript-eslint/unbound-method": "warn",
"@typescript-eslint/explicit-module-boundary-types": "warn",
//"@typescript-eslint/no-extra-semi": "warn",
"@typescript-eslint/no-extra-non-null-assertion": "warn",

"@typescript-eslint/no-unused-vars": ["warn", {
argsIgnorePattern: "^_",
}],

"@typescript-eslint/no-use-before-define": "warn",
"@typescript-eslint/no-for-in-array": "warn",
"@typescript-eslint/no-unsafe-argument": "warn",
"@typescript-eslint/no-unsafe-call": "warn",

"@typescript-eslint/no-unnecessary-condition": ["warn", {
allowConstantLoopConditions: true,
}],

"@typescript-eslint/no-unnecessary-type-constraint": "warn",
"@typescript-eslint/no-implied-eval": "warn",
"@typescript-eslint/no-non-null-asserted-optional-chain": "warn",
"@typescript-eslint/no-invalid-void-type": "warn",
"@typescript-eslint/no-loss-of-precision": "warn",
"@typescript-eslint/no-confusing-void-expression": "warn",
"@typescript-eslint/no-redundant-type-constituents": "warn",
"@typescript-eslint/prefer-for-of": "warn",
"@typescript-eslint/prefer-includes": "warn",
"@typescript-eslint/prefer-string-starts-ends-with": "warn",
"@typescript-eslint/prefer-readonly": "warn",
"@typescript-eslint/prefer-regexp-exec": "warn",
"@typescript-eslint/prefer-nullish-coalescing": "warn",
"@typescript-eslint/prefer-optional-chain": "warn",
"@typescript-eslint/prefer-ts-expect-error": "warn",
"@typescript-eslint/indent": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-empty-interface": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/ban-ts-comment": "off",
},
}];
Loading

0 comments on commit 2209b7e

Please sign in to comment.