@dimensional-innovations/tool-config 3.0.2 → 4.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.
- package/package.json +2 -1
- package/src/tools/eslint/presets/base.js +3 -10
- package/src/tools/eslint/presets/frameworks/angular.js +7 -1
- package/src/tools/eslint/presets/frameworks/astro.js +8 -3
- package/src/tools/eslint/presets/frameworks/node.js +7 -1
- package/src/tools/eslint/presets/frameworks/react.js +6 -1
- package/src/tools/eslint/presets/frameworks/solid.js +6 -1
- package/src/tools/eslint/presets/frameworks/svelte.js +10 -23
- package/src/tools/eslint/presets/frameworks/vanilla.js +7 -1
- package/src/tools/eslint/presets/frameworks/vue.js +6 -1
- package/src/tools/prettier/presets/prettierignore.js +1 -0
- package/src/utils/ignore-patterns.js +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dimensional-innovations/tool-config",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Universal configuration package for ESLint, Prettier, Stylelint, TypeScript, and semantic-release with auto-detection for React, Vue, Svelte, Solid, Astro, Angular, and more",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -74,6 +74,7 @@
|
|
|
74
74
|
"@typescript-eslint/parser": "^8.46.0",
|
|
75
75
|
"astro-eslint-parser": "^1.2.2",
|
|
76
76
|
"eslint": ">=9.0.0",
|
|
77
|
+
"eslint-config-prettier": "^9.1.0",
|
|
77
78
|
"eslint-plugin-astro": "^1.3.1",
|
|
78
79
|
"eslint-plugin-import": "^2.32.0",
|
|
79
80
|
"eslint-plugin-react": "^7.37.0",
|
|
@@ -33,7 +33,7 @@ export default {
|
|
|
33
33
|
'prefer-rest-params': 'error', // Use rest parameters instead of arguments object
|
|
34
34
|
'prefer-spread': 'error', // Use spread operator instead of .apply()
|
|
35
35
|
'object-shorthand': 'error', // Use object shorthand syntax {x} instead of {x: x}
|
|
36
|
-
|
|
36
|
+
// Note: arrow-body-style is a formatting rule disabled by eslint-config-prettier
|
|
37
37
|
|
|
38
38
|
// Code quality
|
|
39
39
|
eqeqeq: ['error', 'always'], // Always use === and !== instead of == and !=
|
|
@@ -68,15 +68,8 @@ export default {
|
|
|
68
68
|
skipComments: true
|
|
69
69
|
}
|
|
70
70
|
], // Warn on functions exceeding 100 lines
|
|
71
|
-
'max-params': ['warn', 4]
|
|
71
|
+
'max-params': ['warn', 4] // Warn on functions with more than 4 parameters
|
|
72
72
|
|
|
73
|
-
//
|
|
74
|
-
'spaced-comment': [
|
|
75
|
-
'error',
|
|
76
|
-
'always',
|
|
77
|
-
{
|
|
78
|
-
markers: ['/']
|
|
79
|
-
}
|
|
80
|
-
] // Require space after // or /*
|
|
73
|
+
// Note: spaced-comment is a formatting rule disabled by eslint-config-prettier
|
|
81
74
|
}
|
|
82
75
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import prettierConfig from 'eslint-config-prettier'
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Angular configuration (basic TypeScript linting)
|
|
3
5
|
*
|
|
@@ -69,6 +71,10 @@ export default function createAngularPreset() {
|
|
|
69
71
|
}
|
|
70
72
|
]
|
|
71
73
|
}
|
|
72
|
-
}
|
|
74
|
+
},
|
|
75
|
+
|
|
76
|
+
// Disable all formatting rules that conflict with Prettier
|
|
77
|
+
// This must be last to override any formatting rules from above
|
|
78
|
+
prettierConfig
|
|
73
79
|
]
|
|
74
80
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import prettierConfig from 'eslint-config-prettier'
|
|
1
2
|
import { configs } from 'eslint-plugin-astro'
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -24,15 +25,19 @@ export default function createAstroPreset() {
|
|
|
24
25
|
'astro/no-deprecated-astro-fetchcontent': 'error', // Use new content collections
|
|
25
26
|
'astro/no-deprecated-astro-resolve': 'error', // Use new module resolution
|
|
26
27
|
|
|
27
|
-
// Template Syntax (
|
|
28
|
+
// Template Syntax (3 rules - formatting rules removed, handled by Prettier)
|
|
28
29
|
'astro/valid-compile': 'error', // Ensure valid Astro syntax
|
|
29
30
|
'astro/no-set-html-directive': 'warn', // Warn about XSS risk
|
|
30
|
-
'astro/semi': ['error', 'always'], // Consistent semicolons in frontmatter
|
|
31
31
|
'astro/prefer-class-list-directive': 'error' // Use class:list over className
|
|
32
|
+
// Note: astro/semi is a formatting rule disabled by eslint-config-prettier
|
|
32
33
|
|
|
33
34
|
// Accessibility (included from jsx-a11y-recommended preset)
|
|
34
35
|
// - alt-text, click-events-have-key-events, etc.
|
|
35
36
|
}
|
|
36
|
-
}
|
|
37
|
+
},
|
|
38
|
+
|
|
39
|
+
// Disable all formatting rules that conflict with Prettier
|
|
40
|
+
// This must be last to override any formatting rules from above
|
|
41
|
+
prettierConfig
|
|
37
42
|
]
|
|
38
43
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import prettierConfig from 'eslint-config-prettier'
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Node.js backend configuration
|
|
3
5
|
* Conservative rules for Node.js/Express/Fastify backend services
|
|
@@ -52,6 +54,10 @@ export default function createNodePreset() {
|
|
|
52
54
|
// Allow both require and import
|
|
53
55
|
'@typescript-eslint/no-var-requires': 'off'
|
|
54
56
|
}
|
|
55
|
-
}
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
// Disable all formatting rules that conflict with Prettier
|
|
60
|
+
// This must be last to override any formatting rules from above
|
|
61
|
+
prettierConfig
|
|
56
62
|
]
|
|
57
63
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import prettierConfig from 'eslint-config-prettier'
|
|
1
2
|
import react from 'eslint-plugin-react'
|
|
2
3
|
import reactHooks from 'eslint-plugin-react-hooks'
|
|
3
4
|
|
|
@@ -71,6 +72,10 @@ export default function createReactPreset() {
|
|
|
71
72
|
'react/no-deprecated': 'error', // Prevent usage of deprecated methods
|
|
72
73
|
'react/no-unknown-property': 'error' // Prevent usage of unknown DOM properties
|
|
73
74
|
}
|
|
74
|
-
}
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
// Disable all formatting rules that conflict with Prettier
|
|
78
|
+
// This must be last to override any formatting rules from above
|
|
79
|
+
prettierConfig
|
|
75
80
|
]
|
|
76
81
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import prettierConfig from 'eslint-config-prettier'
|
|
1
2
|
import solid from 'eslint-plugin-solid/configs/typescript'
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -40,6 +41,10 @@ export default function createSolidPreset() {
|
|
|
40
41
|
'solid/self-closing-comp': 'error', // Self-close components without children
|
|
41
42
|
'solid/style-prop': ['error', { styleProps: ['style', 'css'] }] // Validate style prop
|
|
42
43
|
}
|
|
43
|
-
}
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
// Disable all formatting rules that conflict with Prettier
|
|
47
|
+
// This must be last to override any formatting rules from above
|
|
48
|
+
prettierConfig
|
|
44
49
|
]
|
|
45
50
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import prettierConfig from 'eslint-config-prettier'
|
|
1
2
|
import svelte from 'eslint-plugin-svelte'
|
|
2
3
|
import svelteParser from 'svelte-eslint-parser'
|
|
3
4
|
import tseslint from 'typescript-eslint'
|
|
@@ -48,31 +49,17 @@ export default function createSveltePreset() {
|
|
|
48
49
|
'svelte/no-export-load-in-svelte-module-in-kit-pages': 'error',
|
|
49
50
|
'svelte/no-store-async': 'error',
|
|
50
51
|
|
|
51
|
-
// Code Style (
|
|
52
|
+
// Code Style (3 rules - formatting rules removed, handled by Prettier)
|
|
52
53
|
'svelte/shorthand-attribute': 'error',
|
|
53
54
|
'svelte/shorthand-directive': 'error',
|
|
54
|
-
'svelte/no-spaces-around-equal-signs-in-attribute': 'error'
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
{
|
|
58
|
-
prefer: 'double'
|
|
59
|
-
}
|
|
60
|
-
],
|
|
61
|
-
'svelte/indent': [
|
|
62
|
-
'error',
|
|
63
|
-
{
|
|
64
|
-
indent: 2,
|
|
65
|
-
alignAttributesVertically: true
|
|
66
|
-
}
|
|
67
|
-
],
|
|
68
|
-
'svelte/first-attribute-linebreak': [
|
|
69
|
-
'error',
|
|
70
|
-
{
|
|
71
|
-
multiline: 'below',
|
|
72
|
-
singleline: 'beside'
|
|
73
|
-
}
|
|
74
|
-
]
|
|
55
|
+
'svelte/no-spaces-around-equal-signs-in-attribute': 'error'
|
|
56
|
+
// Note: svelte/html-quotes, svelte/indent, svelte/first-attribute-linebreak
|
|
57
|
+
// are formatting rules disabled by eslint-config-prettier
|
|
75
58
|
}
|
|
76
|
-
}
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
// Disable all formatting rules that conflict with Prettier
|
|
62
|
+
// This must be last to override any formatting rules from above
|
|
63
|
+
prettierConfig
|
|
77
64
|
]
|
|
78
65
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import prettierConfig from 'eslint-config-prettier'
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Vanilla JavaScript/TypeScript configuration
|
|
3
5
|
* No framework-specific rules - just modern JavaScript best practices
|
|
@@ -11,6 +13,10 @@ export default function createVanillaPreset() {
|
|
|
11
13
|
// No framework-specific rules
|
|
12
14
|
// All rules come from base.js and typescript.js presets
|
|
13
15
|
}
|
|
14
|
-
}
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
// Disable all formatting rules that conflict with Prettier
|
|
19
|
+
// This must be last to override any formatting rules from above
|
|
20
|
+
prettierConfig
|
|
15
21
|
]
|
|
16
22
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import prettierConfig from 'eslint-config-prettier'
|
|
1
2
|
import vuePlugin from 'eslint-plugin-vue'
|
|
2
3
|
import tseslint from 'typescript-eslint'
|
|
3
4
|
import vueParser from 'vue-eslint-parser'
|
|
@@ -149,6 +150,10 @@ export default function createVuePreset() {
|
|
|
149
150
|
rules: {
|
|
150
151
|
'@typescript-eslint/naming-convention': 'off'
|
|
151
152
|
}
|
|
152
|
-
}
|
|
153
|
+
},
|
|
154
|
+
|
|
155
|
+
// Disable all formatting rules that conflict with Prettier
|
|
156
|
+
// This must be last to override any formatting rules from above
|
|
157
|
+
prettierConfig
|
|
153
158
|
]
|
|
154
159
|
}
|