@richardscull/eslint-config 1.0.0 → 1.0.2
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/dist/index.d.ts +59 -0
- package/dist/index.js +25 -4
- package/package.json +100 -99
package/dist/index.d.ts
CHANGED
|
@@ -1846,6 +1846,51 @@ interface RuleOptions {
|
|
|
1846
1846
|
* @see https://eslint.org/docs/latest/rules/eqeqeq
|
|
1847
1847
|
*/
|
|
1848
1848
|
'eqeqeq'?: Linter.RuleEntry<Eqeqeq>
|
|
1849
|
+
/**
|
|
1850
|
+
* require a `eslint-enable` comment for every `eslint-disable` comment
|
|
1851
|
+
* @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/disable-enable-pair.html
|
|
1852
|
+
*/
|
|
1853
|
+
'eslint-comments/disable-enable-pair'?: Linter.RuleEntry<EslintCommentsDisableEnablePair>
|
|
1854
|
+
/**
|
|
1855
|
+
* disallow a `eslint-enable` comment for multiple `eslint-disable` comments
|
|
1856
|
+
* @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-aggregating-enable.html
|
|
1857
|
+
*/
|
|
1858
|
+
'eslint-comments/no-aggregating-enable'?: Linter.RuleEntry<[]>
|
|
1859
|
+
/**
|
|
1860
|
+
* disallow duplicate `eslint-disable` comments
|
|
1861
|
+
* @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-duplicate-disable.html
|
|
1862
|
+
*/
|
|
1863
|
+
'eslint-comments/no-duplicate-disable'?: Linter.RuleEntry<[]>
|
|
1864
|
+
/**
|
|
1865
|
+
* disallow `eslint-disable` comments about specific rules
|
|
1866
|
+
* @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-restricted-disable.html
|
|
1867
|
+
*/
|
|
1868
|
+
'eslint-comments/no-restricted-disable'?: Linter.RuleEntry<EslintCommentsNoRestrictedDisable>
|
|
1869
|
+
/**
|
|
1870
|
+
* disallow `eslint-disable` comments without rule names
|
|
1871
|
+
* @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-unlimited-disable.html
|
|
1872
|
+
*/
|
|
1873
|
+
'eslint-comments/no-unlimited-disable'?: Linter.RuleEntry<[]>
|
|
1874
|
+
/**
|
|
1875
|
+
* disallow unused `eslint-disable` comments
|
|
1876
|
+
* @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-unused-disable.html
|
|
1877
|
+
*/
|
|
1878
|
+
'eslint-comments/no-unused-disable'?: Linter.RuleEntry<[]>
|
|
1879
|
+
/**
|
|
1880
|
+
* disallow unused `eslint-enable` comments
|
|
1881
|
+
* @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-unused-enable.html
|
|
1882
|
+
*/
|
|
1883
|
+
'eslint-comments/no-unused-enable'?: Linter.RuleEntry<[]>
|
|
1884
|
+
/**
|
|
1885
|
+
* disallow ESLint directive-comments
|
|
1886
|
+
* @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-use.html
|
|
1887
|
+
*/
|
|
1888
|
+
'eslint-comments/no-use'?: Linter.RuleEntry<EslintCommentsNoUse>
|
|
1889
|
+
/**
|
|
1890
|
+
* require include descriptions in ESLint directive-comments
|
|
1891
|
+
* @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/require-description.html
|
|
1892
|
+
*/
|
|
1893
|
+
'eslint-comments/require-description'?: Linter.RuleEntry<EslintCommentsRequireDescription>
|
|
1849
1894
|
/**
|
|
1850
1895
|
* Enforce `for` loop update clause moving the counter in the right direction
|
|
1851
1896
|
* @see https://eslint.org/docs/latest/rules/for-direction
|
|
@@ -8034,6 +8079,20 @@ type EolLast = []|[("always" | "never" | "unix" | "windows")]
|
|
|
8034
8079
|
type Eqeqeq = ([]|["always"]|["always", {
|
|
8035
8080
|
null?: ("always" | "never" | "ignore")
|
|
8036
8081
|
}] | []|[("smart" | "allow-null")])
|
|
8082
|
+
// ----- eslint-comments/disable-enable-pair -----
|
|
8083
|
+
type EslintCommentsDisableEnablePair = []|[{
|
|
8084
|
+
allowWholeFile?: boolean
|
|
8085
|
+
}]
|
|
8086
|
+
// ----- eslint-comments/no-restricted-disable -----
|
|
8087
|
+
type EslintCommentsNoRestrictedDisable = string[]
|
|
8088
|
+
// ----- eslint-comments/no-use -----
|
|
8089
|
+
type EslintCommentsNoUse = []|[{
|
|
8090
|
+
allow?: ("eslint" | "eslint-disable" | "eslint-disable-line" | "eslint-disable-next-line" | "eslint-enable" | "eslint-env" | "exported" | "global" | "globals")[]
|
|
8091
|
+
}]
|
|
8092
|
+
// ----- eslint-comments/require-description -----
|
|
8093
|
+
type EslintCommentsRequireDescription = []|[{
|
|
8094
|
+
ignore?: ("eslint" | "eslint-disable" | "eslint-disable-line" | "eslint-disable-next-line" | "eslint-enable" | "eslint-env" | "exported" | "global" | "globals")[]
|
|
8095
|
+
}]
|
|
8037
8096
|
// ----- func-call-spacing -----
|
|
8038
8097
|
type FuncCallSpacing = ([]|["never"] | []|["always"]|["always", {
|
|
8039
8098
|
allowNewlines?: boolean
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import commandConfig from 'eslint-plugin-command/config';
|
|
2
|
+
import eslintComments from '@eslint-community/eslint-plugin-eslint-comments';
|
|
2
3
|
import pluginAntfu from 'eslint-plugin-antfu';
|
|
3
4
|
import * as pluginImport from 'eslint-plugin-import-x';
|
|
4
5
|
import simpleImportSort from 'eslint-plugin-simple-import-sort';
|
|
@@ -14,9 +15,26 @@ import pluginHyoban from 'eslint-plugin-hyoban';
|
|
|
14
15
|
import typescriptEslint from 'typescript-eslint';
|
|
15
16
|
import pluginUnicorn from 'eslint-plugin-unicorn';
|
|
16
17
|
import pluginUnusedImports from 'eslint-plugin-unused-imports';
|
|
17
|
-
import { isPackageExists, getPackageInfo } from 'local-pkg';
|
|
18
|
+
import { isPackageExists, getPackageInfo, isPackageListed } from 'local-pkg';
|
|
18
19
|
import { readPackageUp } from 'read-package-up';
|
|
19
20
|
|
|
21
|
+
function eslintCommentsConfig() {
|
|
22
|
+
return {
|
|
23
|
+
name: "extend/eslint-comments",
|
|
24
|
+
plugins: {
|
|
25
|
+
"eslint-comments": eslintComments
|
|
26
|
+
},
|
|
27
|
+
rules: {
|
|
28
|
+
"eslint-comments/require-description": [
|
|
29
|
+
"error",
|
|
30
|
+
{
|
|
31
|
+
ignore: []
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
20
38
|
function importConfig() {
|
|
21
39
|
return {
|
|
22
40
|
name: "extend/import",
|
|
@@ -1060,8 +1078,11 @@ async function mergeDefaultOptions(options) {
|
|
|
1060
1078
|
const hasNext = isPackageExists("next");
|
|
1061
1079
|
const hasExpo = isPackageExists("expo");
|
|
1062
1080
|
const hasUnocss = isPackageExists("unocss");
|
|
1063
|
-
const tailwindPackageInfo = await
|
|
1064
|
-
|
|
1081
|
+
const [tailwindPackageInfo, tailwindPackageListed] = await Promise.all([
|
|
1082
|
+
getPackageInfo("tailwindcss"),
|
|
1083
|
+
isPackageListed("tailwindcss")
|
|
1084
|
+
]);
|
|
1085
|
+
const hasTailwindCSS = tailwindPackageListed && !!tailwindPackageInfo?.version;
|
|
1065
1086
|
/// keep-sorted
|
|
1066
1087
|
const defaultOptions = {
|
|
1067
1088
|
fileCase: false,
|
|
@@ -1114,7 +1135,7 @@ async function mergeDefaultOptions(options) {
|
|
|
1114
1135
|
|
|
1115
1136
|
async function defineConfig(options, ...args) {
|
|
1116
1137
|
const finalOptions = await mergeDefaultOptions(options);
|
|
1117
|
-
return config(finalOptions, ...javaScriptConfigs(finalOptions), ...unicornConfigs(finalOptions), ...typeScriptConfigs(finalOptions), importConfig(), unusedConfig(), regexConfig(), commandConfig(), ...stylisticConfigs(finalOptions), ...jsonConfigs(finalOptions), ...reactConfigs(finalOptions), tailwindCSSConfig(finalOptions), unocssConfig(finalOptions), ...args);
|
|
1138
|
+
return config(finalOptions, ...javaScriptConfigs(finalOptions), ...unicornConfigs(finalOptions), ...typeScriptConfigs(finalOptions), importConfig(), unusedConfig(), regexConfig(), commandConfig(), eslintCommentsConfig(), ...stylisticConfigs(finalOptions), ...jsonConfigs(finalOptions), ...reactConfigs(finalOptions), tailwindCSSConfig(finalOptions), unocssConfig(finalOptions), ...args);
|
|
1118
1139
|
}
|
|
1119
1140
|
|
|
1120
1141
|
export { DEFAULT_IGNORE_FILES, GLOB_EXCLUDE, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSON_SRC, GLOB_JSX_SRC, GLOB_JS_SRC, GLOB_SHOULD_BE_JSONC, GLOB_SRC, GLOB_TS_SRC, defineConfig };
|
package/package.json
CHANGED
|
@@ -1,99 +1,100 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@richardscull/eslint-config",
|
|
3
|
-
"type": "module",
|
|
4
|
-
"version": "1.0.
|
|
5
|
-
"packageManager": "pnpm@10.26.1",
|
|
6
|
-
"description": "ESLint Config",
|
|
7
|
-
"author": "richardscull, original by hyoban",
|
|
8
|
-
"license": "MIT",
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/richardscull/eslint-config.git"
|
|
12
|
-
},
|
|
13
|
-
"keywords": [
|
|
14
|
-
"eslint-config"
|
|
15
|
-
],
|
|
16
|
-
"sideEffects": false,
|
|
17
|
-
"exports": {
|
|
18
|
-
".": "./dist/index.js"
|
|
19
|
-
},
|
|
20
|
-
"main": "./dist/index.js",
|
|
21
|
-
"types": "./dist/index.d.ts",
|
|
22
|
-
"files": [
|
|
23
|
-
"dist"
|
|
24
|
-
],
|
|
25
|
-
"engines": {
|
|
26
|
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
|
27
|
-
},
|
|
28
|
-
"scripts": {
|
|
29
|
-
"build": "pnpm typegen && bunchee",
|
|
30
|
-
"build:inspector": "npx @eslint/config-inspector build",
|
|
31
|
-
"dev": "pnpm typegen && npx @eslint/config-inspector",
|
|
32
|
-
"lint": "eslint",
|
|
33
|
-
"lint:fix": "eslint --fix",
|
|
34
|
-
"prepare": "simple-git-hooks && pnpm run build",
|
|
35
|
-
"prepublishOnly": "pnpm run build",
|
|
36
|
-
"test": "vitest",
|
|
37
|
-
"typecheck": "tsc",
|
|
38
|
-
"typegen": "tsx scripts/typegen.ts"
|
|
39
|
-
},
|
|
40
|
-
"peerDependencies": {
|
|
41
|
-
"eslint": "^9.0.0",
|
|
42
|
-
"typescript": ">=4.8.4"
|
|
43
|
-
},
|
|
44
|
-
"peerDependenciesMeta": {
|
|
45
|
-
"typescript": {
|
|
46
|
-
"optional": true
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
"dependencies": {
|
|
50
|
-
"@eslint-
|
|
51
|
-
"@eslint/
|
|
52
|
-
"@
|
|
53
|
-
"@
|
|
54
|
-
"@
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"eslint-
|
|
58
|
-
"eslint-plugin-
|
|
59
|
-
"eslint-plugin-
|
|
60
|
-
"eslint-plugin-
|
|
61
|
-
"eslint-plugin-
|
|
62
|
-
"eslint-plugin-
|
|
63
|
-
"eslint-plugin-
|
|
64
|
-
"eslint-plugin-react-
|
|
65
|
-
"eslint-plugin-react-
|
|
66
|
-
"eslint-plugin-
|
|
67
|
-
"eslint-plugin-
|
|
68
|
-
"eslint-plugin-
|
|
69
|
-
"eslint-plugin-
|
|
70
|
-
"eslint-plugin-
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
"@
|
|
80
|
-
"@types/
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"eslint
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@richardscull/eslint-config",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "1.0.2",
|
|
5
|
+
"packageManager": "pnpm@10.26.1",
|
|
6
|
+
"description": "ESLint Config",
|
|
7
|
+
"author": "richardscull, original by hyoban",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/richardscull/eslint-config.git"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"eslint-config"
|
|
15
|
+
],
|
|
16
|
+
"sideEffects": false,
|
|
17
|
+
"exports": {
|
|
18
|
+
".": "./dist/index.js"
|
|
19
|
+
},
|
|
20
|
+
"main": "./dist/index.js",
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"files": [
|
|
23
|
+
"dist"
|
|
24
|
+
],
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "pnpm typegen && bunchee",
|
|
30
|
+
"build:inspector": "npx @eslint/config-inspector build",
|
|
31
|
+
"dev": "pnpm typegen && npx @eslint/config-inspector",
|
|
32
|
+
"lint": "eslint",
|
|
33
|
+
"lint:fix": "eslint --fix",
|
|
34
|
+
"prepare": "simple-git-hooks && pnpm run build",
|
|
35
|
+
"prepublishOnly": "pnpm run build",
|
|
36
|
+
"test": "vitest",
|
|
37
|
+
"typecheck": "tsc",
|
|
38
|
+
"typegen": "tsx scripts/typegen.ts"
|
|
39
|
+
},
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"eslint": "^9.0.0",
|
|
42
|
+
"typescript": ">=4.8.4"
|
|
43
|
+
},
|
|
44
|
+
"peerDependenciesMeta": {
|
|
45
|
+
"typescript": {
|
|
46
|
+
"optional": true
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
|
|
51
|
+
"@eslint-react/eslint-plugin": "^2.3.13",
|
|
52
|
+
"@eslint/js": "^9.39.2",
|
|
53
|
+
"@stylistic/eslint-plugin": "^5.6.1",
|
|
54
|
+
"@typescript-eslint/types": "^8.50.0",
|
|
55
|
+
"@unocss/eslint-config": "^66.5.10",
|
|
56
|
+
"defu": "^6.1.4",
|
|
57
|
+
"eslint-config-flat-gitignore": "^2.1.0",
|
|
58
|
+
"eslint-plugin-antfu": "^3.1.1",
|
|
59
|
+
"eslint-plugin-command": "^3.4.0",
|
|
60
|
+
"eslint-plugin-hyoban": "^0.6.1",
|
|
61
|
+
"eslint-plugin-import-x": "^4.16.1",
|
|
62
|
+
"eslint-plugin-jsonc": "^2.21.0",
|
|
63
|
+
"eslint-plugin-package-json": "^0.85.0",
|
|
64
|
+
"eslint-plugin-react-google-translate": "^0.1.1",
|
|
65
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
66
|
+
"eslint-plugin-react-refresh": "^0.4.26",
|
|
67
|
+
"eslint-plugin-regexp": "^2.10.0",
|
|
68
|
+
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
69
|
+
"eslint-plugin-tailwindcss": "4.0.0-beta.0",
|
|
70
|
+
"eslint-plugin-unicorn": "^62.0.0",
|
|
71
|
+
"eslint-plugin-unused-imports": "^4.3.0",
|
|
72
|
+
"globals": "^16.5.0",
|
|
73
|
+
"jsonc-eslint-parser": "^2.4.2",
|
|
74
|
+
"local-pkg": "^1.1.2",
|
|
75
|
+
"read-package-up": "^12.0.0",
|
|
76
|
+
"typescript-eslint": "^8.50.0"
|
|
77
|
+
},
|
|
78
|
+
"devDependencies": {
|
|
79
|
+
"@eslint/config-inspector": "1.4.2",
|
|
80
|
+
"@types/node": "^22.19.3",
|
|
81
|
+
"@types/react": "^19.2.7",
|
|
82
|
+
"bunchee": "^6.6.2",
|
|
83
|
+
"eslint": "^9.39.2",
|
|
84
|
+
"eslint-typegen": "^2.3.0",
|
|
85
|
+
"jiti": "^2.6.1",
|
|
86
|
+
"lint-staged": "^16.2.7",
|
|
87
|
+
"simple-git-hooks": "^2.13.1",
|
|
88
|
+
"tailwindcss": "^4.1.18",
|
|
89
|
+
"tsx": "^4.21.0",
|
|
90
|
+
"typescript": "^5.9.3",
|
|
91
|
+
"unocss": "^66.5.10",
|
|
92
|
+
"vitest": "^4.0.16"
|
|
93
|
+
},
|
|
94
|
+
"simple-git-hooks": {
|
|
95
|
+
"pre-commit": "pnpm lint-staged"
|
|
96
|
+
},
|
|
97
|
+
"lint-staged": {
|
|
98
|
+
"*": "eslint --fix"
|
|
99
|
+
}
|
|
100
|
+
}
|