Skip to content

Commit

Permalink
fix!: update eslint and drop support for Node 18 (#384)
Browse files Browse the repository at this point in the history
  • Loading branch information
Jason3S authored Aug 13, 2024
1 parent 65db96d commit ed6bcdb
Show file tree
Hide file tree
Showing 56 changed files with 3,446 additions and 3,747 deletions.
67 changes: 0 additions & 67 deletions .eslintrc.js

This file was deleted.

5 changes: 2 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,8 @@ jobs:
strategy:
matrix:
node-version:
- 18.x
- 20.x
- 21.x
- 22.x

os:
- ubuntu-latest
Expand All @@ -43,7 +42,7 @@ jobs:
strategy:
matrix:
node-version:
- 18.x
- 20.x

os:
- windows-latest
Expand Down
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ cspell.schema.json
tsconfig*.json
**/coverage/**
**/dist/**
.release-please-manifest.json
111 changes: 111 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
// @ts-check

import eslint from '@eslint/js';
import nodePlugin from 'eslint-plugin-n';
import simpleImportSort from 'eslint-plugin-simple-import-sort';
import tsEslint from 'typescript-eslint';

// mimic CommonJS variables -- not needed if using CommonJS
// import { FlatCompat } from "@eslint/eslintrc";
// const __dirname = fileURLToPath(new URL('.', import.meta.url));
// const compat = new FlatCompat({baseDirectory: __dirname, recommendedConfig: eslint.configs.recommended});

export default tsEslint.config(
eslint.configs.recommended,
nodePlugin.configs['flat/recommended'],
...tsEslint.configs.recommended,
...tsEslint.configs.strict,
...tsEslint.configs.stylistic,
{
ignores: [
'.github/**/*.yaml',
'.github/**/*.yml',
'**/__snapshots__/**',
'**/.vscode-test/**',
'**/.yarn/**',
'**/*.d.ts',
'**/build/**',
'**/coverage/**',
'**/dist/**',
'**/fixtures/**',
'**/fixtures/**/*.js',
'**/node_modules/**',
'**/scripts/ts-json-schema-generator.cjs',
'**/temp/**',
'**/webpack*.js',
'docs/docsV2/**',
'package-lock.json',
'packages/*/dist/**',
'packages/*/out/**',
'packages/client/server/**',
'website/.docusaurus/**',
'website/**',
'website/build/**',
'website/node_modules/**',
],
},
{
plugins: {
'simple-import-sort': simpleImportSort,
},
rules: {
'simple-import-sort/imports': 'error',
'simple-import-sort/exports': 'error',
},
},
{
files: ['**/*.{ts,cts,mts,tsx}'],
rules: {
// Note: you must disable the base rule as it can report incorrect errors
'no-unused-vars': 'off',
'@typescript-eslint/unified-signatures': 'off', // The signatures come from VS Code, it is better to have them match the source.
'@typescript-eslint/no-empty-interface': 'off',
'@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/no-non-null-assertion': 'error',
'@typescript-eslint/prefer-literal-enum-member': 'off',
'@typescript-eslint/consistent-type-imports': ['error'],
'@typescript-eslint/no-unused-vars': [
'error',
{
args: 'all',
argsIgnorePattern: '^_',
caughtErrors: 'all',
caughtErrorsIgnorePattern: '^_',
destructuredArrayIgnorePattern: '^_',
varsIgnorePattern: '^_',
ignoreRestSiblings: true,
},
],
'n/no-missing-import': [
'off', // disabled because it is not working correctly
{
tryExtensions: ['.d.ts', '.d.mts', '.d.cts', '.ts', '.cts', '.mts', '.js', '.cjs', '.mjs'],
},
],
},
},
{
files: ['**/*.test.*', '**/__mocks__/**', '**/test/**', '**/test.*', '**/rollup.config.mjs', '**/build.mjs'],
rules: {
'n/no-extraneous-require': 'off', // Mostly for __mocks__ and test files
'n/no-extraneous-import': 'off',
'n/no-unpublished-import': 'off',
'@typescript-eslint/no-explicit-any': 'off', // any is allowed in tests
'@typescript-eslint/no-useless-constructor': 'off', // useful for tests
'@typescript-eslint/no-dynamic-delete': 'off', // useful for tests
},
},
{
files: ['**/jest.config.*', '**/__mocks__/**'],
rules: {
'n/no-extraneous-require': 'off',
'no-undef': 'off',
},
},
{
files: ['**/*.json'],
rules: {
'@typescript-eslint/no-unused-expressions': 'off',
},
},
);
2 changes: 1 addition & 1 deletion index.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
/* eslint-disable @typescript-eslint/no-var-requires */
/* eslint-disable @typescript-eslint/no-require-imports */
module.exports = require('./dist/index');
26 changes: 12 additions & 14 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"lint": "pnpm run lint:eslint --fix && pnpm run lint:prettier",
"lint:ci": "pnpm run lint:eslint && pnpm run lint:prettier-ci",
"lint:eslint": "eslint .",
"lint:prettier": "prettier -w \"**/*.{yaml,yml,md}\"",
"lint:prettier": "prettier -w .",
"lint:prettier-ci": "prettier -c \"**/*.{yaml,yml,md}\"",
"lint:spelling": "cspell --dot \"**\"",
"prepare": "pnpm run build",
Expand Down Expand Up @@ -49,27 +49,25 @@
"url": "https://github.com/streetsidesoftware/jest-mock-vscode.git"
},
"devDependencies": {
"@eslint/js": "^9.9.0",
"@jest/globals": "^29.7.0",
"@tsconfig/node18": "^18.2.4",
"@types/node": "^18.19.44",
"@types/vscode": "^1.92.0",
"@typescript-eslint/eslint-plugin": "^7.18.0",
"@typescript-eslint/parser": "^7.18.0",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jest": "^28.8.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-promise": "^7.1.0",
"@tsconfig/node20": "^20.1.4",
"@types/node": "^20.14.15",
"eslint": "^9.9.0",
"eslint-plugin-n": "^17.10.2",
"eslint-plugin-simple-import-sort": "^12.1.1",
"inject-markdown": "^3.1.0",
"jest": "^29.7.0",
"prettier": "^3.3.3",
"rfdc": "^1.4.1",
"ts-jest": "^29.2.4",
"typescript": "^5.5.4"
"typescript": "^5.5.4",
"typescript-eslint": "^8.1.0"
},
"dependencies": {
"vscode-uri": "^3.0.8"
},
"peerDependencies": {
"@types/vscode": "^1.92.0"
}
}
Loading

0 comments on commit ed6bcdb

Please sign in to comment.