Skip to content

Commit db5b3ef

Browse files
adjust rules (#241)
Signed-off-by: Kangrui Johann Ye <[email protected]>
1 parent b9956fc commit db5b3ef

File tree

11 files changed

+52
-29
lines changed

11 files changed

+52
-29
lines changed

eslint.config.mjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ export default tseslint.config(
2424
'packages/eslint-plugin-typescript/src/configs/recommended-typescript/rules/format.ts',
2525
'packages/eslint-plugin-typescript/src/configs/recommended-typescript/rules/import.ts',
2626
'packages/eslint-plugin-typescript/src/configs/recommended-typescript/rules/rxjs.ts',
27+
'packages/eslint-plugin-typescript/src/rules/package/*',
2728
'packages/eslint-plugin-typescript/src/rules/ts-config/*',
29+
'packages/eslint-plugin-typescript/src/rules/typescript/*.spec.ts',
2830
'scripts/*',
2931
'.eslintrc.format.js',
3032
'eslint.config.mjs',

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@cloudflight/eslint-plugin",
3-
"version": "1.0.0-rc3",
3+
"version": "1.0.0-rc4",
44
"private": true,
55
"volta": {
66
"node": "20.12.2",

packages/eslint-plugin-angular/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@cloudflight/eslint-plugin-angular",
3-
"version": "1.0.0-rc3",
3+
"version": "1.0.0-rc4",
44
"description": "Cloudflight eslint-plugin & eslint-config for angular",
55
"volta": {
66
"extends": "../../package.json"

packages/eslint-plugin-node/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@cloudflight/eslint-plugin-node",
3-
"version": "1.0.0-rc3",
3+
"version": "1.0.0-rc4",
44
"description": "Cloudflight eslint-plugin & eslint-config for node",
55
"volta": {
66
"extends": "../../package.json"

packages/eslint-plugin-node/src/configs/security.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ function warningEntryToError(value: TSESLint.Linter.RuleEntry): TSESLint.Linter.
1313
const level = Array.isArray(value) ? value[0] : value;
1414
const updatedLevel = warningLevelToError(level);
1515

16-
return Array.isArray(value) ? [updatedLevel, value.slice(1)] : updatedLevel;
16+
return Array.isArray(value) ? [updatedLevel, ...value.slice(1)] : updatedLevel;
1717
}
1818

1919
function warningLevelToError(level: TSESLint.Linter.RuleLevel): TSESLint.Linter.RuleLevel {

packages/eslint-plugin-react/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@cloudflight/eslint-plugin-react",
3-
"version": "1.0.0-rc3",
3+
"version": "1.0.0-rc4",
44
"description": "Cloudflight eslint-plugin & eslint-config for React",
55
"volta": {
66
"extends": "../../package.json"

packages/eslint-plugin-typescript/package.json

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@cloudflight/eslint-plugin-typescript",
3-
"version": "1.0.0-rc3",
3+
"version": "1.0.0-rc4",
44
"description": "Cloudflight eslint-plugin & eslint-config for typescript",
55
"volta": {
66
"extends": "../../package.json"
@@ -30,10 +30,6 @@
3030
"@eslint/js": "^9.11.1",
3131
"@typescript-eslint/eslint-plugin": "^8.8.0",
3232
"@typescript-eslint/parser": "^8.8.0",
33-
"eslint-plugin-import": "^2.29.1",
34-
"eslint-plugin-json-es": "^1.6.0",
35-
"eslint-plugin-rxjs": "^5.0.3",
36-
"eslint-plugin-simple-import-sort": "^12.1.0",
3733
"typescript-eslint": "^8.8.0"
3834
},
3935
"peerDependencies": {

packages/eslint-plugin-typescript/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export const cloudflightTypescriptConfig = tseslint.config(
1414
extends: [
1515
pluginJs.configs.recommended,
1616
...tseslint.configs.recommendedTypeChecked,
17+
...tseslint.configs.strictTypeChecked,
1718
],
1819
rules: {
1920
...eslintRules,

packages/eslint-plugin-vue/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@cloudflight/eslint-plugin-vue",
3-
"version": "1.0.0-rc3",
3+
"version": "1.0.0-rc4",
44
"description": "Cloudflight eslint-plugin & eslint-config for vue",
55
"volta": {
66
"extends": "../../package.json"

packages/eslint-plugin-vue/src/configs/vue.ts

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,22 @@
11
import {TSESLint} from '@typescript-eslint/utils';
2+
// @ts-expect-error .d.ts file for eslint-plugin-vue has been implemented but not released yet
3+
// if the following line fails to build after updating the version, simply remove this comment
4+
import pluginVue from 'eslint-plugin-vue';
25

3-
const htmlIndent = 4;
6+
// .d.ts file for eslint-plugin-vue has been implemented but not released yet, if the
7+
// following line fails to build after updating the version, simply remove this comment
8+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/consistent-type-assertions
9+
const recommendedConfigArray = pluginVue.configs['flat/recommended'] as TSESLint.FlatConfig.ConfigArray;
10+
const recommendedRules = recommendedConfigArray
11+
.reduce<Record<string, TSESLint.Linter.RuleEntry | undefined>>((acc, config) => ({...acc, ...config.rules}), {});
12+
const updatedRules = Object.entries<TSESLint.Linter.RuleEntry | undefined>(recommendedRules)
13+
.filter((entry): entry is [string, TSESLint.Linter.RuleEntry] => entry[1] != null)
14+
.map(([key, value]) => [key, warningEntryToError(value)]);
415

516
export const vueRules: TSESLint.Linter.RulesRecord = {
17+
// yes, we know this works correctly
18+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
19+
...Object.fromEntries(updatedRules) as TSESLint.Linter.RulesRecord,
620
'vue/block-lang': [
721
'error',
822
{
@@ -24,7 +38,30 @@ export const vueRules: TSESLint.Linter.RulesRecord = {
2438
},
2539
],
2640
'vue/html-button-has-type': 'error',
27-
'vue/html-indent': ['error', htmlIndent],
2841
'vue/no-ref-object-destructure': 'error',
2942
'vue/no-undef-properties': 'error',
43+
// disable stylistic rules
44+
'vue/html-indent': 'off',
45+
'vue/max-attributes-per-line': 'off',
46+
'vue/html-self-closing': 'off',
47+
'vue/singleline-html-element-content-newline': 'off',
48+
'vue/multiline-html-element-content-newline': 'off',
49+
'vue/html-closing-bracket-newline': 'off',
3050
};
51+
52+
function warningEntryToError(value: TSESLint.Linter.RuleEntry): TSESLint.Linter.RuleEntry {
53+
const level = Array.isArray(value) ? value[0] : value;
54+
const updatedLevel = warningLevelToError(level);
55+
56+
return Array.isArray(value) ? [updatedLevel, ...value.slice(1)] : updatedLevel;
57+
}
58+
59+
function warningLevelToError(level: TSESLint.Linter.RuleLevel): TSESLint.Linter.RuleLevel {
60+
if (level === 'warn') {
61+
return 'error';
62+
} else if (level === 1) {
63+
return 'error';
64+
}
65+
66+
return level;
67+
}

0 commit comments

Comments
 (0)