eslint-config-vylda-typescript-react 2.1.0 → 3.0.1
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 +14 -0
- package/README.md +2 -0
- package/eslint.config.mjs +11 -1
- package/index.d.ts +70 -0
- package/index.js +8 -1
- package/package.json +5 -5
- package/rules/react.mjs +4 -0
- package/rules/reactTsOff.mjs +2 -0
- package/tsconfig.json +10 -1
package/Changelog.md
CHANGED
|
@@ -4,6 +4,20 @@ All notable changes to this component will be documented in this file.
|
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [3.0.1] - 2025-01-02
|
|
8
|
+
### Added
|
|
9
|
+
- index.d.ts [Vilda Lipold]
|
|
10
|
+
- nonTsConfigFiles and nonTsConfigFilesRule export [Vilda Lipold]
|
|
11
|
+
### Updated
|
|
12
|
+
- eslint.config.mjs for nonTsConfigFilesRule [Vilda Lipold]
|
|
13
|
+
- eslint-config-vylda-typescript package [Vilda Lipold]
|
|
14
|
+
- Readme [Vilda Lipold]
|
|
15
|
+
- tsConfig no emit [Vilda Lipold]
|
|
16
|
+
|
|
17
|
+
## [3.0.0] - 2025-01-02
|
|
18
|
+
### Updated
|
|
19
|
+
- Packages [Vilda Lipold]
|
|
20
|
+
|
|
7
21
|
## [2.1.0] - 2025-12-06
|
|
8
22
|
### Updated
|
|
9
23
|
- Packages [Vilda Lipold]
|
package/README.md
CHANGED
|
@@ -336,6 +336,8 @@ You can also use `mapFiles` function to map files for all rules.
|
|
|
336
336
|
- `ignores` - ESLint config with global ignored folder patterns ([default values](https://gitlab.com/Vylda/eslint-config-vylda-vanilla/-/blob/main/ignores.mjs#L4), [documentation](https://eslint.org/docs/latest/use/configure/ignore#ignoring-files))
|
|
337
337
|
- `mapFiles` - helper function to map files for all configs ([source](https://gitlab.com/Vylda/eslint-config-vylda-vanilla/-/blob/main/mapFiles.mjs))
|
|
338
338
|
- `node` - ESLint config with rules for Node.js ([source](https://gitlab.com/Vylda/eslint-config-vylda-vanilla/-/blob/main/rules/node.mjs), [documentation](https://github.com/eslint-community/eslint-plugin-n?tab=readme-ov-file#-rules))
|
|
339
|
+
- `nonTsConfigFiles` - Array of non typescript files for nonTsConfigFilesRule ([source](https://gitlab.com/Vylda/eslint-config-vylda-typescript/-/blob/main/eslint.config.mjs#L12))
|
|
340
|
+
- `nonTsConfigFilesRule` - ESLint rule for non-TypeScript files ([source](https://gitlab.com/Vylda/eslint-config-vylda-typescript/-/blob/main/eslint.config.mjs#L56))
|
|
339
341
|
- `perfectionist` - ESLint config with rules for perfectionist ([source](https://gitlab.com/Vylda/eslint-config-vylda-vanilla/-/blob/main/rules/perfectionist.mjs), [documentation](https://perfectionist.dev/rules))
|
|
340
342
|
- `plugins` - default plugins used in this config ([source](./eslint.config.mjs#L31))
|
|
341
343
|
- `plus` - ESLint config with rules for extended rules ([source](https://gitlab.com/Vylda/eslint-config-vylda-typescript/-/blob/main/rules/plus.mjs), [documentation](https://eslint.style/packages/plus))
|
package/eslint.config.mjs
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import getConfig, {
|
|
2
|
-
ignores,
|
|
2
|
+
ignores,
|
|
3
|
+
mapFiles,
|
|
4
|
+
nonTsConfigFiles,
|
|
5
|
+
nonTsConfigFilesRule,
|
|
6
|
+
plugins as tsVanillaPlugins,
|
|
3
7
|
} from 'eslint-config-vylda-typescript';
|
|
4
8
|
import {
|
|
5
9
|
reactPlugins as baseReactPlugins,
|
|
@@ -49,6 +53,11 @@ const refreshConfigsWithFiles = mapFiles(refresh, refreshFiles);
|
|
|
49
53
|
const perfectionistWithFiles = mapFiles(perfectionist, files);
|
|
50
54
|
const offWithFiles = mapFiles(reactTsOff, tsFiles);
|
|
51
55
|
|
|
56
|
+
const updatedNonTsConfigFilesRule = {
|
|
57
|
+
...nonTsConfigFilesRule,
|
|
58
|
+
files: [...nonTsConfigFiles, 'index.js'],
|
|
59
|
+
};
|
|
60
|
+
|
|
52
61
|
const config = [
|
|
53
62
|
...tsConfigs,
|
|
54
63
|
...reactConfigsWithFiles,
|
|
@@ -56,6 +65,7 @@ const config = [
|
|
|
56
65
|
...perfectionistWithFiles,
|
|
57
66
|
...offWithFiles,
|
|
58
67
|
...ignores,
|
|
68
|
+
updatedNonTsConfigFilesRule,
|
|
59
69
|
];
|
|
60
70
|
|
|
61
71
|
export default config;
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { ESLint, Linter } from 'eslint';
|
|
2
|
+
|
|
3
|
+
export type TConfig = Array<Linter.Config>;
|
|
4
|
+
export type TGetConfigOptions = TGetImportConfigOptions & {
|
|
5
|
+
barrelsFiles?: Array<string>;
|
|
6
|
+
files?: Array<string>;
|
|
7
|
+
plugins?: Record<string, ESLint.Plugin>;
|
|
8
|
+
refreshFiles?: Array<string>;
|
|
9
|
+
tsFiles?: Array<string>;
|
|
10
|
+
};
|
|
11
|
+
export type TGetImportConfigOptions = {
|
|
12
|
+
barrelsFiles?: Array<string>;
|
|
13
|
+
files?: Array<string>;
|
|
14
|
+
importExtensions?: Array<string>;
|
|
15
|
+
importExtensionsRuleGranularOption?: Record<string, unknown>;
|
|
16
|
+
importNoExtraneousDependenciesDevDependencies?: Array<string>;
|
|
17
|
+
importResolverNodeExtensions?: Array<string>;
|
|
18
|
+
plugins?: Record<string, ESLint.Plugin>;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export function getConfig(baseDir: string, options?: TGetConfigOptions): TConfig;
|
|
22
|
+
export function getLanguageOptions(dir: string): TConfig;
|
|
23
|
+
export function getReactConfig(options?: TGetConfigOptions): TConfig;
|
|
24
|
+
export function getTsImportConfig(tsConfigPath: string, options?: TGetImportConfigOptions): TConfig;
|
|
25
|
+
export function mapFiles(defaults: TConfig, customFiles: Array<string>): TConfig;
|
|
26
|
+
|
|
27
|
+
export const a11y: TConfig;
|
|
28
|
+
export const allReactConfigs: TConfig;
|
|
29
|
+
export const barrels: TConfig;
|
|
30
|
+
export const barrelsFiles: Array<string>;
|
|
31
|
+
export const bestPractices: TConfig;
|
|
32
|
+
export const customs: TConfig;
|
|
33
|
+
export const defaultImportExtensions: Array<string>;
|
|
34
|
+
export const defaultImportExtensionsRuleGranularOption: Record<string, string>;
|
|
35
|
+
export const defaultImportNoExtraneousDependenciesDevDependencies: Array<string>;
|
|
36
|
+
export const defaultImportResolverNodeExtensions: Array<string>;
|
|
37
|
+
export const defaultTs: TConfig;
|
|
38
|
+
export const errors: TConfig;
|
|
39
|
+
export const es6: TConfig;
|
|
40
|
+
export const files: Array<string>;
|
|
41
|
+
export const hooks: TConfig;
|
|
42
|
+
export const ignores: TConfig;
|
|
43
|
+
export const node: TConfig;
|
|
44
|
+
export const nonTsConfigFiles: Array<string>;
|
|
45
|
+
export const nonTsConfigFilesRule: TConfig[number];
|
|
46
|
+
export const perfectionist: TConfig;
|
|
47
|
+
export const plugins: Record<string, ESLint.Plugin>;
|
|
48
|
+
export const plus: TConfig;
|
|
49
|
+
export const react: TConfig;
|
|
50
|
+
export const reactConfigs: TConfig;
|
|
51
|
+
export const reactPerfectionist: TConfig;
|
|
52
|
+
export const reactPlugins: Record<string, ESLint.Plugin>;
|
|
53
|
+
export const reactStylistic: TConfig;
|
|
54
|
+
export const reactTsOff: TConfig;
|
|
55
|
+
export const reactVanillaPlugins: Record<string, ESLint.Plugin>;
|
|
56
|
+
export const refresh: TConfig;
|
|
57
|
+
export const refreshFiles: Array<string>;
|
|
58
|
+
export const strict: TConfig;
|
|
59
|
+
export const stylistic: TConfig;
|
|
60
|
+
export const tsConfig: TConfig;
|
|
61
|
+
export const tsFiles: Array<string>;
|
|
62
|
+
export const tsPlugins: Record<string, ESLint.Plugin>;
|
|
63
|
+
export const tsStrict: TConfig;
|
|
64
|
+
export const tsStylistic: TConfig;
|
|
65
|
+
export const tsVanillaPlugins: Record<string, ESLint.Plugin>;
|
|
66
|
+
export const vanillaConfigs: TConfig;
|
|
67
|
+
export const vanillaPlugins: Record<string, ESLint.Plugin>;
|
|
68
|
+
export const variables: TConfig;
|
|
69
|
+
|
|
70
|
+
export default getConfig;
|
package/index.js
CHANGED
|
@@ -10,6 +10,8 @@ import getTsConfig, {
|
|
|
10
10
|
ignores,
|
|
11
11
|
mapFiles,
|
|
12
12
|
node,
|
|
13
|
+
nonTsConfigFiles,
|
|
14
|
+
nonTsConfigFilesRule,
|
|
13
15
|
perfectionist,
|
|
14
16
|
plus,
|
|
15
17
|
strict,
|
|
@@ -37,7 +39,10 @@ import {
|
|
|
37
39
|
refresh,
|
|
38
40
|
} from 'eslint-config-vylda-vanilla-react';
|
|
39
41
|
import {
|
|
40
|
-
files,
|
|
42
|
+
files,
|
|
43
|
+
plugins,
|
|
44
|
+
refreshFiles,
|
|
45
|
+
tsFiles,
|
|
41
46
|
} from './eslint.config.mjs';
|
|
42
47
|
import {
|
|
43
48
|
defaultImportExtensions,
|
|
@@ -144,6 +149,8 @@ export {
|
|
|
144
149
|
ignores,
|
|
145
150
|
mapFiles,
|
|
146
151
|
node,
|
|
152
|
+
nonTsConfigFiles,
|
|
153
|
+
nonTsConfigFilesRule,
|
|
147
154
|
perfectionist,
|
|
148
155
|
plugins,
|
|
149
156
|
plus,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-config-vylda-typescript-react",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "Eslint Typescript rules for JS and TS React projects",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
"typescript": "^5.9.3"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"eslint": "^9.
|
|
57
|
-
"eslint-config-vylda-typescript": "^
|
|
58
|
-
"eslint-config-vylda-vanilla-react": "^
|
|
56
|
+
"eslint": "^9.39.2",
|
|
57
|
+
"eslint-config-vylda-typescript": "^6.0.2",
|
|
58
|
+
"eslint-config-vylda-vanilla-react": "^5.0.0",
|
|
59
59
|
"eslint-import-resolver-typescript": "^4.4.2",
|
|
60
|
-
"typescript-eslint": "^8.
|
|
60
|
+
"typescript-eslint": "^8.51.0"
|
|
61
61
|
}
|
|
62
62
|
}
|
package/rules/react.mjs
CHANGED
|
@@ -5,6 +5,10 @@ import {
|
|
|
5
5
|
const updateJsxFilenameExtensionRule = () => {
|
|
6
6
|
const [{ name: ruleName, rules: baseReactRules, ...restReactConfig }] = basicReactConfig;
|
|
7
7
|
|
|
8
|
+
if (!baseReactRules) {
|
|
9
|
+
return basicReactConfig;
|
|
10
|
+
}
|
|
11
|
+
|
|
8
12
|
const jsfRule = baseReactRules['react/jsx-filename-extension'];
|
|
9
13
|
|
|
10
14
|
const [type, options] = jsfRule;
|
package/rules/reactTsOff.mjs
CHANGED
package/tsconfig.json
CHANGED
|
@@ -5,11 +5,20 @@
|
|
|
5
5
|
"esModuleInterop": true,
|
|
6
6
|
"jsx": "react-jsx",
|
|
7
7
|
"module": "nodenext",
|
|
8
|
+
"noEmit": true,
|
|
8
9
|
"strict": true,
|
|
9
10
|
"target": "ES2024"
|
|
10
11
|
},
|
|
11
12
|
"exclude": [
|
|
12
13
|
"node_modules"
|
|
13
14
|
],
|
|
14
|
-
"include": [
|
|
15
|
+
"include": [
|
|
16
|
+
"**/*.js",
|
|
17
|
+
"**/*.jsx",
|
|
18
|
+
"**/*.mjs",
|
|
19
|
+
"**/*.mts",
|
|
20
|
+
"**/*.ts",
|
|
21
|
+
"**/*.tsx",
|
|
22
|
+
"**/*.d.ts"
|
|
23
|
+
]
|
|
15
24
|
}
|