@ffflorian/eslint-config 0.10.3 → 0.12.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,44 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # 0.12.0 (2026-01-30)
7
+
8
+
9
+ ### Features
10
+
11
+ * **eslint-config:** Add new flat configuration ([6daa64f](https://github.com/ffflorian/config/commit/6daa64f64a322831fd50ecc771ed3deb979b2e64))
12
+
13
+
14
+ ### BREAKING CHANGES
15
+
16
+ * **eslint-config:** Now requires eslint >= 9.39 and typescript
17
+
18
+
19
+
20
+
21
+
22
+ ## 0.11.1 (2026-01-09)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * Release ([90cde23](https://github.com/ffflorian/config/commit/90cde23c333d29f7613eb7dd59d990d139c4631c))
28
+
29
+
30
+
31
+
32
+
33
+ # 0.11.0 (2026-01-06)
34
+
35
+
36
+ ### Features
37
+
38
+ * Remove typescript-config ([12608dd](https://github.com/ffflorian/config/commit/12608ddc926c2cb6ba05dd0b81c4793489886689))
39
+
40
+
41
+
42
+
43
+
6
44
  ## 0.10.3 (2024-05-26)
7
45
 
8
46
  **Note:** Version bump only for package @ffflorian/eslint-config
package/index.ts ADDED
@@ -0,0 +1,78 @@
1
+ import js from '@eslint/js';
2
+ import importPlugin from 'eslint-plugin-import';
3
+ import oxlint from 'eslint-plugin-oxlint';
4
+ import perfectionist from 'eslint-plugin-perfectionist';
5
+ import {defineConfig, globalIgnores} from 'eslint/config';
6
+ import globals from 'globals';
7
+ import {configs as tseslintConfigs} from 'typescript-eslint';
8
+
9
+ export default defineConfig([
10
+ globalIgnores(['**/node_modules/**', '**/dist/**']),
11
+ js.configs.recommended,
12
+ tseslintConfigs.recommended,
13
+ {
14
+ extends: [
15
+ importPlugin.flatConfigs.recommended,
16
+ importPlugin.flatConfigs.typescript,
17
+ perfectionist.configs['recommended-alphabetical'],
18
+ ],
19
+ files: ['**/*.{js,mjs,cjs,ts,mts,cts}'],
20
+ languageOptions: {
21
+ globals: {
22
+ ...globals.node,
23
+ },
24
+ },
25
+ plugins: {js},
26
+ rules: {
27
+ '@typescript-eslint/array-type': ['error', {default: 'array-simple'}],
28
+ '@typescript-eslint/consistent-type-assertions': 'error',
29
+ '@typescript-eslint/no-empty-object-type': 'off',
30
+ '@typescript-eslint/no-explicit-any': 'off',
31
+ '@typescript-eslint/no-inferrable-types': ['error', {ignoreParameters: true}],
32
+ '@typescript-eslint/no-redeclare': 'error',
33
+ '@typescript-eslint/no-this-alias': 'error',
34
+ '@typescript-eslint/no-unused-vars': 'error',
35
+ '@typescript-eslint/typedef': 'error',
36
+ 'constructor-super': 'error',
37
+ curly: 'error',
38
+ 'id-length': ['error', {exceptions: ['_']}],
39
+ 'import/order': 'off',
40
+ 'no-console': ['error', {allow: ['error', 'info', 'warn']}],
41
+ 'no-const-assign': 'error',
42
+ 'no-duplicate-case': 'error',
43
+ 'no-else-return': 'error',
44
+ 'no-inner-declarations': 'error',
45
+ 'no-lonely-if': 'error',
46
+ 'no-magic-numbers': ['error', {ignore: [-1, 0, 1, 2]}],
47
+ 'no-prototype-builtins': 'off',
48
+ 'no-redeclare': 'off',
49
+ 'no-return-await': 'error',
50
+ 'no-sequences': 'error',
51
+ 'no-sparse-arrays': 'error',
52
+ 'no-trailing-spaces': 'error',
53
+ 'no-undef': 'error',
54
+ 'no-unneeded-ternary': 'error',
55
+ 'no-unused-expressions': 'error',
56
+ 'no-unused-vars': 'off',
57
+ 'no-useless-return': 'error',
58
+ 'no-var': 'error',
59
+ 'one-var': ['error', 'never'],
60
+ 'prefer-arrow-callback': 'error',
61
+ 'prefer-const': 'error',
62
+ 'prefer-object-spread': 'error',
63
+ 'prefer-promise-reject-errors': 'error',
64
+ 'prefer-spread': 'error',
65
+ 'prefer-template': 'error',
66
+ quotes: ['error', 'single', {allowTemplateLiterals: true, avoidEscape: true}],
67
+ 'sort-keys': 'off',
68
+ 'sort-vars': 'error',
69
+ strict: ['error', 'global'],
70
+ },
71
+ settings: {
72
+ 'import/resolver': {
73
+ typescript: {},
74
+ },
75
+ },
76
+ },
77
+ ...oxlint.configs['flat/recommended'],
78
+ ]);
package/package.json CHANGED
@@ -1,30 +1,53 @@
1
1
  {
2
2
  "author": "Florian Imdahl <git@ffflorian.de>",
3
+ "dependencies": {
4
+ "@eslint/js": "9.39.2",
5
+ "eslint": "9.39.2",
6
+ "eslint-import-resolver-typescript": "4.4.4",
7
+ "eslint-plugin-import": "2.32.0",
8
+ "eslint-plugin-oxlint": "1.42.0",
9
+ "eslint-plugin-perfectionist": "5.4.0",
10
+ "globals": "17.2.0",
11
+ "jiti": "2.6.1",
12
+ "typescript-eslint": "8.54.0"
13
+ },
3
14
  "description": "@ffflorian's eslint configuration",
15
+ "devDependencies": {
16
+ "@eslint/js": "9.39.2",
17
+ "eslint": "9.39.2",
18
+ "eslint-import-resolver-typescript": "4.4.4",
19
+ "eslint-plugin-import": "2.32.0",
20
+ "eslint-plugin-oxlint": "1.42.0",
21
+ "eslint-plugin-perfectionist": "5.4.0",
22
+ "globals": "17.2.0",
23
+ "jiti": "2.6.1",
24
+ "typescript": "5.9.3",
25
+ "typescript-eslint": "8.54.0"
26
+ },
4
27
  "keywords": [
5
28
  "eslint",
6
29
  "eslintconfig"
7
30
  ],
31
+ "peerDependencies": {
32
+ "@eslint/js": ">= 9.39.2",
33
+ "eslint": ">= 9.39.2",
34
+ "eslint-import-resolver-typescript": ">= 4.4.4",
35
+ "eslint-plugin-import": ">= 2.32.0",
36
+ "eslint-plugin-oxlint": ">= 1.42.0",
37
+ "eslint-plugin-perfectionist": ">= 5.4.0",
38
+ "globals": ">= 17.2.0",
39
+ "jiti": ">= 2.6.1",
40
+ "typescript": ">= 5.9.3",
41
+ "typescript-eslint": ">= 8.54.0"
42
+ },
8
43
  "license": "GPL-3.0",
9
- "main": "index.json",
44
+ "main": "index.ts",
10
45
  "name": "@ffflorian/eslint-config",
11
- "peerDependencies": {
12
- "@babel/eslint-parser": ">= 7.0.0",
13
- "@typescript-eslint/eslint-plugin": ">= 4.14.1",
14
- "@typescript-eslint/parser": ">= 4.14.1",
15
- "eslint": ">= 6.8.0",
16
- "eslint-config-prettier": ">= 4.0.0",
17
- "eslint-plugin-import": ">= 2.20.0",
18
- "eslint-plugin-jasmine": ">= 4.1.0",
19
- "eslint-plugin-jsdoc": ">= 21.0.0",
20
- "eslint-plugin-no-unsanitized": ">= 3.1.0",
21
- "eslint-plugin-prettier": ">= 3.1.2",
22
- "eslint-plugin-simple-import-sort": ">= 5.0.0",
23
- "eslint-plugin-sort-keys-fix": ">= 1.1.0",
24
- "eslint-plugin-typescript-sort-keys": ">= 0.8.0",
25
- "eslint-plugin-unused-imports": ">= 1.1.0"
46
+ "scripts": {
47
+ "fix": "yarn lint --fix",
48
+ "lint": "eslint -c index.ts ."
26
49
  },
27
- "repository": "https://github.com/ffflorian/config/tree/main/packages/eslint-config",
28
- "version": "0.10.3",
29
- "gitHead": "36f46bc520f62cc6813464e7bf9912aa2293a5b5"
50
+ "repository": "https://github.com/ffflorian/config",
51
+ "version": "0.12.0",
52
+ "gitHead": "dee2c9407cf2c070d96692936d2c88aa4e28277d"
30
53
  }
package/tsconfig.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "compilerOptions": {
3
+ "alwaysStrict": true,
4
+ "declaration": true,
5
+ "forceConsistentCasingInFileNames": true,
6
+ "lib": ["ESNext", "DOM"],
7
+ "module": "nodenext",
8
+ "moduleResolution": "nodenext",
9
+ "noEmitOnError": true,
10
+ "noImplicitAny": true,
11
+ "noImplicitReturns": true,
12
+ "noImplicitThis": true,
13
+ "noUnusedLocals": true,
14
+ "sourceMap": false,
15
+ "strict": true,
16
+ "strictFunctionTypes": true,
17
+ "target": "es2018"
18
+ }
19
+ }
package/index.json DELETED
@@ -1,119 +0,0 @@
1
- {
2
- "env": {
3
- "browser": true,
4
- "es6": true,
5
- "node": true
6
- },
7
- "extends": ["prettier", "plugin:no-unsanitized/DOM"],
8
- "overrides": [
9
- {
10
- "files": "*.ts",
11
- "parser": "@typescript-eslint/parser",
12
- "rules": {
13
- "@typescript-eslint/array-type": ["error", {"default": "array-simple"}],
14
- "@typescript-eslint/consistent-type-assertions": "error",
15
- "@typescript-eslint/no-floating-promises": "error",
16
- "@typescript-eslint/no-inferrable-types": ["error", {"ignoreParameters": true}],
17
- "@typescript-eslint/no-this-alias": "error",
18
- "@typescript-eslint/no-unused-vars": "error",
19
- "@typescript-eslint/prefer-readonly": "error",
20
- "@typescript-eslint/typedef": "error",
21
- "unused-imports/no-unused-imports": "error",
22
- "unused-imports/no-unused-vars": ["warn", {"vars": "all", "varsIgnorePattern": "^_", "args": "after-used", "argsIgnorePattern": "^_"}]
23
- }
24
- }
25
- ],
26
- "parser": "@babel/eslint-parser",
27
- "parserOptions": {
28
- "ecmaVersion": 11,
29
- "project": "tsconfig.json",
30
- "sourceType": "module"
31
- },
32
- "plugins": ["@typescript-eslint", "jsdoc", "no-unsanitized", "prettier", "sort-keys-fix", "typescript-sort-keys", "unused-imports"],
33
- "rules": {
34
- "constructor-super": "error",
35
- "curly": "error",
36
- "id-length": [
37
- "error",
38
- {
39
- "exceptions": ["_"]
40
- }
41
- ],
42
- "no-console": [
43
- "error",
44
- {
45
- "allow": ["error", "info", "warn"]
46
- }
47
- ],
48
- "no-const-assign": "error",
49
- "no-duplicate-case": "error",
50
- "no-else-return": "error",
51
- "no-inner-declarations": "error",
52
- "no-lonely-if": "error",
53
- "no-magic-numbers": [
54
- "error",
55
- {
56
- "ignore": [-1, 0, 1, 2]
57
- }
58
- ],
59
- "no-return-await": "error",
60
- "no-sequences": "error",
61
- "no-sparse-arrays": "error",
62
- "no-trailing-spaces": "error",
63
- "no-undef": "error",
64
- "no-unneeded-ternary": "error",
65
- "no-unused-expressions": "error",
66
- "no-useless-return": "error",
67
- "no-var": "error",
68
- "one-var": ["error", "never"],
69
- "prefer-arrow-callback": "error",
70
- "prefer-const": "error",
71
- "prefer-object-spread": "error",
72
- "prefer-promise-reject-errors": "error",
73
- "prefer-spread": "error",
74
- "prefer-template": "error",
75
- "prettier/prettier": "error",
76
- "quotes": [
77
- "error",
78
- "single",
79
- {
80
- "allowTemplateLiterals": true,
81
- "avoidEscape": true
82
- }
83
- ],
84
- "sort-keys-fix/sort-keys-fix": "error",
85
- "sort-vars": "error",
86
- "strict": ["error", "global"],
87
- "typescript-sort-keys/interface": [
88
- "warn",
89
- "asc",
90
- {
91
- "caseSensitive": false
92
- }
93
- ],
94
- "typescript-sort-keys/string-enum": [
95
- "warn",
96
- "asc",
97
- {
98
- "caseSensitive": false
99
- }
100
- ],
101
- "valid-jsdoc": [
102
- "error",
103
- {
104
- "prefer": {
105
- "class": "class",
106
- "return": "returns"
107
- },
108
- "preferType": {
109
- "Boolean": "boolean",
110
- "Number": "number",
111
- "String": "string",
112
- "object": "Object"
113
- },
114
- "requireParamDescription": true,
115
- "requireReturnDescription": true
116
- }
117
- ]
118
- }
119
- }