@jarsec/eslint-config 5.1.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/index.mjs +39 -0
  3. package/package.json +15 -18
  4. package/index.js +0 -67
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @jarsec/eslint-config
2
2
 
3
+ ## 6.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - bc38fb2: Update to ESLint v9
8
+
9
+ - Bump ESLint dependencies to support the v9 migration.
10
+ - Update config file to flat config format.
11
+ - Drop eslint-plugin-import until they can get their lives together.
12
+ - Simplify @stylistic configuration.
13
+
14
+ ## 5.2.0
15
+
16
+ ### Minor Changes
17
+
18
+ - c596d63: Add import-newlines plugin
19
+
3
20
  ## 5.1.0
4
21
 
5
22
  ### Minor Changes
package/index.mjs ADDED
@@ -0,0 +1,39 @@
1
+ // @ts-check
2
+
3
+ import eslint from '@eslint/js';
4
+ import stylistic from '@stylistic/eslint-plugin';
5
+ import nodePlugin from 'eslint-plugin-n';
6
+ import perfectionist from 'eslint-plugin-perfectionist';
7
+ import unicorn from 'eslint-plugin-unicorn';
8
+ import tseslint from 'typescript-eslint';
9
+
10
+ export default tseslint.config(
11
+ eslint.configs.recommended,
12
+ ...tseslint.configs.recommended,
13
+ ...tseslint.configs.stylistic,
14
+ nodePlugin.configs['flat/recommended'],
15
+ unicorn.configs['flat/recommended'],
16
+ perfectionist.configs['recommended-natural'],
17
+ stylistic.configs.customize({
18
+ arrowParens: false,
19
+ blockSpacing: true,
20
+ braceStyle: '1tbs',
21
+ commaDangle: 'always-multiline',
22
+ flat: true,
23
+ indent: 2,
24
+ jsx: true,
25
+ pluginName: '@stylistic',
26
+ quoteProps: 'consistent-as-needed',
27
+ quotes: 'single',
28
+ semi: true,
29
+ }),
30
+ {
31
+ rules: {
32
+ 'multiline-comment-style': ['error', 'separate-lines'],
33
+ 'n/no-missing-import': 'off',
34
+ 'n/no-process-exit': 'off',
35
+ 'unicorn/no-process-exit': 'off',
36
+ 'unicorn/prevent-abbreviations': 'off',
37
+ },
38
+ },
39
+ );
package/package.json CHANGED
@@ -1,29 +1,26 @@
1
1
  {
2
2
  "name": "@jarsec/eslint-config",
3
- "version": "5.1.0",
3
+ "version": "6.0.0",
4
4
  "description": "jsec's eslint configurations",
5
5
  "author": "Jarrod Seccombe <jarrod.seccombe@icloud.com>",
6
- "main": "index.js",
7
6
  "license": "MIT",
8
7
  "publishConfig": {
9
8
  "access": "public"
10
9
  },
10
+ "exports": {
11
+ ".": "./index.mjs"
12
+ },
11
13
  "dependencies": {
12
- "@eslint/js": "^8.57.0",
13
- "@rushstack/eslint-patch": "^1.7.2",
14
- "@stylistic/eslint-plugin": "^1.6.3",
14
+ "@eslint/js": "^9.13.0",
15
+ "@stylistic/eslint-plugin": "^2.9.0",
16
+ "@types/eslint__js": "^8.42.3",
15
17
  "@types/node": "^20.11.20",
16
- "@typescript-eslint/eslint-plugin": "^7.1.0",
17
- "@typescript-eslint/parser": "^7.1.0",
18
- "eslint": "^8.57.0",
19
- "eslint-import-resolver-typescript": "^3.6.1",
20
- "eslint-plugin-import": "^2.29.1",
21
- "eslint-plugin-n": "^16.6.2",
22
- "eslint-plugin-perfectionist": "^2.5.0",
23
- "eslint-plugin-promise": "^6.1.1",
24
- "eslint-plugin-unicorn": "^51.0.1",
25
- "globals": "^14.0.0",
26
- "typescript": "^5.3.3"
18
+ "eslint": "^9.13.0",
19
+ "eslint-plugin-n": "^17.11.1",
20
+ "eslint-plugin-perfectionist": "^3.9.1",
21
+ "eslint-plugin-unicorn": "^56.0.0",
22
+ "typescript": "^5.3.3",
23
+ "typescript-eslint": "^8.11.0"
27
24
  },
28
25
  "devDependencies": {
29
26
  "@types/node": "^20.11.20",
@@ -31,8 +28,8 @@
31
28
  "typescript": "^5.3.3"
32
29
  },
33
30
  "peerDependencies": {
34
- "eslint": "^8.56.0",
35
- "typescript": "^5.2.2"
31
+ "eslint": "^9.13.0",
32
+ "typescript": "^5.3.3"
36
33
  },
37
34
  "scripts": {
38
35
  "lint": "eslint --fix ."
package/index.js DELETED
@@ -1,67 +0,0 @@
1
- require('@rushstack/eslint-patch/modern-module-resolution');
2
-
3
- const styleRules = require('./configs/style');
4
-
5
- module.exports = {
6
- env: {
7
- node: true
8
- },
9
- extends: [
10
- 'eslint:recommended',
11
- 'plugin:n/recommended',
12
- 'plugin:import/recommended',
13
- 'plugin:unicorn/recommended',
14
- 'plugin:perfectionist/recommended-natural'
15
- ],
16
- overrides: [
17
- {
18
- extends: [
19
- 'plugin:@typescript-eslint/recommended',
20
- 'plugin:import/typescript'
21
- ],
22
- files: [ '*.ts' ],
23
- parser: '@typescript-eslint/parser',
24
- parserOptions: {
25
- project: './tsconfig.json'
26
- },
27
- plugins: [
28
- '@typescript-eslint/eslint-plugin'
29
- ],
30
- rules: {
31
- ...styleRules,
32
- 'import/no-unresolved': 'error'
33
- },
34
- settings: {
35
- 'import/parsers': {
36
- '@typescript-eslint/parser': [ '.ts' ]
37
- },
38
- 'import/resolver': {
39
- node: true,
40
- typescript: {
41
- alwaysTryTypes: true
42
- }
43
- }
44
- }
45
- }
46
- ],
47
- plugins: [
48
- 'import',
49
- 'perfectionist',
50
- 'unicorn',
51
- '@stylistic'
52
- ],
53
- rules: {
54
- ...styleRules,
55
- 'multiline-comment-style': [
56
- 'error',
57
- 'separate-lines'
58
- ],
59
- 'n/no-missing-import': 'off',
60
- 'n/no-process-exit': 'off',
61
- 'unicorn/no-process-exit': 'off',
62
- 'unicorn/prefer-module': 'off',
63
- 'unicorn/prefer-top-level-await': 'off',
64
- 'unicorn/prevent-abbreviations': 'off'
65
- }
66
- };
67
-