@lvce-editor/eslint-config 1.18.0 → 1.20.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/index.d.ts +2 -0
- package/index.js +12 -2
- package/package.json +2 -1
- package/rules.js +159 -0
package/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
declare const config: readonly any[] & {}
|
|
2
2
|
declare const recommendedNode: readonly any[] & {}
|
|
3
3
|
declare const recommendedFolderStructure: readonly any[] & {}
|
|
4
|
+
declare const recommendedTsconfig: readonly any[] & {}
|
|
4
5
|
|
|
5
6
|
export { recommendedNode }
|
|
6
7
|
export { recommendedFolderStructure }
|
|
8
|
+
export { recommendedTsconfig }
|
|
7
9
|
|
|
8
10
|
export default config
|
package/index.js
CHANGED
|
@@ -9,6 +9,10 @@ import process from 'node:process'
|
|
|
9
9
|
import tseslint from 'typescript-eslint'
|
|
10
10
|
import packageJson from 'eslint-plugin-package-json/configs/recommended'
|
|
11
11
|
import eslintPluginUnicorn from 'eslint-plugin-unicorn'
|
|
12
|
+
// @ts-ignore
|
|
13
|
+
|
|
14
|
+
const uri = './rules.js'
|
|
15
|
+
const tsconfigPlugin = (await import(uri)).default
|
|
12
16
|
|
|
13
17
|
const root = process.cwd()
|
|
14
18
|
|
|
@@ -47,7 +51,6 @@ const fileCompositionConfig = createFileComposition({
|
|
|
47
51
|
],
|
|
48
52
|
})
|
|
49
53
|
|
|
50
|
-
tseslint.configs.recommendedTypeChecked
|
|
51
54
|
/**
|
|
52
55
|
* @type {any}
|
|
53
56
|
*/
|
|
@@ -124,8 +127,12 @@ const defaultConfig = tseslint.config(
|
|
|
124
127
|
files: ['**/package.json'],
|
|
125
128
|
extends: [packageJson],
|
|
126
129
|
},
|
|
127
|
-
eslintPluginUnicorn.configs['flat/recommended'],
|
|
128
130
|
{
|
|
131
|
+
files: ['**/*.ts'],
|
|
132
|
+
...eslintPluginUnicorn.configs['flat/recommended'],
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
files: ['**/*.ts'],
|
|
129
136
|
rules: {
|
|
130
137
|
'unicorn/filename-case': 'off',
|
|
131
138
|
'unicorn/prefer-event-target': 'off',
|
|
@@ -171,6 +178,7 @@ const defaultConfig = tseslint.config(
|
|
|
171
178
|
export const recommendedNode = [
|
|
172
179
|
nodePlugin.configs['flat/recommended'],
|
|
173
180
|
{
|
|
181
|
+
files: ['**/*.ts'],
|
|
174
182
|
rules: {
|
|
175
183
|
'n/prefer-node-protocol': 'error',
|
|
176
184
|
'n/no-unpublished-import': 'off', // TODO enable this for some node packages, which don't bundle dependencies
|
|
@@ -200,4 +208,6 @@ export const recommendedFolderStructucture = [
|
|
|
200
208
|
},
|
|
201
209
|
]
|
|
202
210
|
|
|
211
|
+
export const recommendedTsconfig = [...tsconfigPlugin]
|
|
212
|
+
|
|
203
213
|
export default defaultConfig
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lvce-editor/eslint-config",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@eslint/css": "^0.2.0",
|
|
23
23
|
"@eslint/js": "^9.19.0",
|
|
24
|
+
"@eslint/json": "^0.10.0",
|
|
24
25
|
"eslint-plugin-jest": "^28.11.0",
|
|
25
26
|
"eslint-plugin-n": "^17.15.1",
|
|
26
27
|
"eslint-plugin-package-json": "^0.21.1",
|
package/rules.js
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __export = (target, all) => {
|
|
3
|
+
for (var name in all)
|
|
4
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
// src/index.ts
|
|
8
|
+
import json from "@eslint/json";
|
|
9
|
+
|
|
10
|
+
// src/tsconfig-allow-importing-ts-extensions.ts
|
|
11
|
+
var tsconfig_allow_importing_ts_extensions_exports = {};
|
|
12
|
+
__export(tsconfig_allow_importing_ts_extensions_exports, {
|
|
13
|
+
create: () => create2,
|
|
14
|
+
meta: () => meta
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
// src/tsconfig-compiler-option.ts
|
|
18
|
+
var create = (context, name) => {
|
|
19
|
+
return {
|
|
20
|
+
Member(node) {
|
|
21
|
+
if (node.name.type === "String" && node.name.value === "compilerOptions" && node.value.type === "Object") {
|
|
22
|
+
const members = node.value.members;
|
|
23
|
+
for (const member of members) {
|
|
24
|
+
if (member.name.type === "String" && member.name.value === name) {
|
|
25
|
+
if (member.value.value === true) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (member.value.value === false) {
|
|
29
|
+
context.report({
|
|
30
|
+
loc: member.name.loc,
|
|
31
|
+
messageId: name
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
context.report({
|
|
38
|
+
loc: node.name.loc,
|
|
39
|
+
messageId: name
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// src/tsconfig-allow-importing-ts-extensions.ts
|
|
47
|
+
var meta = {
|
|
48
|
+
type: "problem",
|
|
49
|
+
docs: {
|
|
50
|
+
description: "Ensure that the allowImportingTsExtensions is enabled"
|
|
51
|
+
},
|
|
52
|
+
messages: {
|
|
53
|
+
allowImportingTsExtensions: "allowImportingTsExtensions rule should be enabled"
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
var create2 = (context) => {
|
|
57
|
+
return create(context, "allowImportingTsExtensions");
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// src/tsconfig-force-consistent-casing-in-file-names.ts
|
|
61
|
+
var tsconfig_force_consistent_casing_in_file_names_exports = {};
|
|
62
|
+
__export(tsconfig_force_consistent_casing_in_file_names_exports, {
|
|
63
|
+
create: () => create3,
|
|
64
|
+
meta: () => meta2
|
|
65
|
+
});
|
|
66
|
+
var meta2 = {
|
|
67
|
+
type: "problem",
|
|
68
|
+
docs: {
|
|
69
|
+
description: "Ensure that the forceConsistentCasingInFileNames rule is enabled"
|
|
70
|
+
},
|
|
71
|
+
messages: {
|
|
72
|
+
forceConsistentCasingInFileNames: "forceConsistentCasingInFileNames rule should be enabled"
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
var create3 = (context) => {
|
|
76
|
+
return create(context, "forceConsistentCasingInFileNames");
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
// src/tsconfig-no-unchecked-side-effect-imports.ts
|
|
80
|
+
var tsconfig_no_unchecked_side_effect_imports_exports = {};
|
|
81
|
+
__export(tsconfig_no_unchecked_side_effect_imports_exports, {
|
|
82
|
+
create: () => create4,
|
|
83
|
+
meta: () => meta3
|
|
84
|
+
});
|
|
85
|
+
var meta3 = {
|
|
86
|
+
type: "problem",
|
|
87
|
+
docs: {
|
|
88
|
+
description: "Disallow not allowed keys in JSON objects"
|
|
89
|
+
},
|
|
90
|
+
messages: {
|
|
91
|
+
noUncheckedSideEffectImports: "noUncheckedSideEffectImports rule should be enabled"
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
var create4 = (context) => {
|
|
95
|
+
return create(context, "noUncheckedSideEffectImports");
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
// src/tsconfig-strict.ts
|
|
99
|
+
var tsconfig_strict_exports = {};
|
|
100
|
+
__export(tsconfig_strict_exports, {
|
|
101
|
+
create: () => create5,
|
|
102
|
+
meta: () => meta4
|
|
103
|
+
});
|
|
104
|
+
var meta4 = {
|
|
105
|
+
type: "problem",
|
|
106
|
+
docs: {
|
|
107
|
+
description: "Ensure that the strict mode is enabled"
|
|
108
|
+
},
|
|
109
|
+
messages: {
|
|
110
|
+
strict: "strict mode should be enabled"
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
var create5 = (context) => {
|
|
114
|
+
return create(context, "strict");
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
// src/index.ts
|
|
118
|
+
var plugin = {
|
|
119
|
+
meta: {
|
|
120
|
+
name: "tsconfig",
|
|
121
|
+
version: "0.0.1"
|
|
122
|
+
},
|
|
123
|
+
rules: {
|
|
124
|
+
"no-unchecked-side-effect-imports": tsconfig_no_unchecked_side_effect_imports_exports,
|
|
125
|
+
"force-consistent-casing-in-file-names": tsconfig_force_consistent_casing_in_file_names_exports,
|
|
126
|
+
strict: tsconfig_strict_exports,
|
|
127
|
+
"allow-importing-ts-extensions": tsconfig_allow_importing_ts_extensions_exports
|
|
128
|
+
},
|
|
129
|
+
configs: {}
|
|
130
|
+
};
|
|
131
|
+
var recommended = [
|
|
132
|
+
{
|
|
133
|
+
plugins: {
|
|
134
|
+
json
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
files: ["**/*.json"],
|
|
139
|
+
language: "json/json",
|
|
140
|
+
rules: {}
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
plugins: {
|
|
144
|
+
tsconfig: plugin
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
rules: {
|
|
149
|
+
"tsconfig/no-unchecked-side-effect-imports": "error",
|
|
150
|
+
"tsconfig/force-consistent-casing-in-file-names": "error",
|
|
151
|
+
"tsconfig/strict": "error",
|
|
152
|
+
"tsconfig/allow-importing-ts-extensions": "error"
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
];
|
|
156
|
+
var index_default = recommended;
|
|
157
|
+
export {
|
|
158
|
+
index_default as default
|
|
159
|
+
};
|