@truenine/eslint9-config 1.0.13 → 1.0.15
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/README.md +0 -4
- package/dist/_virtual/rolldown_runtime.cjs +25 -0
- package/dist/defaults/index.cjs +181 -181
- package/dist/defaults/index.cjs.map +1 -0
- package/dist/defaults/index.js +181 -190
- package/dist/defaults/index.js.map +1 -0
- package/dist/index.cjs +35 -48
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +21 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +19 -15
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -49
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.cts +46 -0
- package/dist/types/index.d.cts.map +1 -0
- package/dist/types/index.d.ts +45 -39
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +7 -15
- package/dist/defaults/index.d.ts +0 -35
package/README.md
CHANGED
|
@@ -133,10 +133,6 @@ Install the [ESLint extension](https://marketplace.visualstudio.com/items?itemNa
|
|
|
133
133
|
}
|
|
134
134
|
```
|
|
135
135
|
|
|
136
|
-
## License
|
|
137
|
-
|
|
138
|
-
[LGPL-2.1-or-later](../../LICENSE)
|
|
139
|
-
|
|
140
136
|
## Contributing
|
|
141
137
|
|
|
142
138
|
Contributions are welcome! Please read our [contributing guidelines](../../README.md) for details.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region rolldown:runtime
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
|
+
key = keys[i];
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
12
|
+
get: ((k) => from[k]).bind(null, key),
|
|
13
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
19
|
+
value: mod,
|
|
20
|
+
enumerable: true
|
|
21
|
+
}) : target, mod));
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
|
|
25
|
+
exports.__toESM = __toESM;
|
package/dist/defaults/index.cjs
CHANGED
|
@@ -1,194 +1,193 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
|
|
2
|
+
//#region src/defaults/index.ts
|
|
3
3
|
const defaultUnocssConfig = {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
attributify: true,
|
|
5
|
+
strict: true
|
|
6
6
|
};
|
|
7
7
|
const defaultVueConfig = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
"prefer-const": [
|
|
87
|
-
"error",
|
|
88
|
-
{
|
|
89
|
-
destructuring: "any",
|
|
90
|
-
ignoreReadBeforeAssign: false
|
|
91
|
-
}
|
|
92
|
-
]
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
const defaultTsConfig = {
|
|
96
|
-
overrides: {
|
|
97
|
-
"ts/no-unsafe-assignment": "off",
|
|
98
|
-
"ts/no-unsafe-call": "off",
|
|
99
|
-
"ts/no-unsafe-argument": "off",
|
|
100
|
-
"ts/no-unsafe-return": "off",
|
|
101
|
-
"ts/member-ordering": ["error"],
|
|
102
|
-
"ts/no-extra-non-null-assertion": "error",
|
|
103
|
-
"ts/no-non-null-assertion": "error",
|
|
104
|
-
"ts/no-explicit-any": ["error", {
|
|
105
|
-
fixToUnknown: true,
|
|
106
|
-
ignoreRestArgs: true
|
|
107
|
-
}],
|
|
108
|
-
"ts/no-namespace": "error",
|
|
109
|
-
"ts/no-unused-vars": [
|
|
110
|
-
"error",
|
|
111
|
-
{
|
|
112
|
-
vars: "all",
|
|
113
|
-
args: "after-used",
|
|
114
|
-
ignoreRestSiblings: false
|
|
115
|
-
}
|
|
116
|
-
]
|
|
117
|
-
}
|
|
8
|
+
vueVersion: 3,
|
|
9
|
+
overrides: {
|
|
10
|
+
"vue/html-self-closing": ["error", { html: {
|
|
11
|
+
void: "always",
|
|
12
|
+
normal: "always",
|
|
13
|
+
component: "always"
|
|
14
|
+
} }],
|
|
15
|
+
"vue/html-comment-content-spacing": [
|
|
16
|
+
"error",
|
|
17
|
+
"always",
|
|
18
|
+
{ exceptions: [] }
|
|
19
|
+
],
|
|
20
|
+
"vue/html-comment-indent": ["error", 2],
|
|
21
|
+
"vue/html-indent": [
|
|
22
|
+
"error",
|
|
23
|
+
2,
|
|
24
|
+
{
|
|
25
|
+
baseIndent: 0,
|
|
26
|
+
alignAttributesVertically: true
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"vue/define-emits-declaration": ["error", "type-literal"],
|
|
30
|
+
"vue/define-props-declaration": ["error", "type-based"],
|
|
31
|
+
"vue/define-macros-order": ["error", {
|
|
32
|
+
order: [
|
|
33
|
+
"defineProps",
|
|
34
|
+
"defineEmits",
|
|
35
|
+
"defineModel",
|
|
36
|
+
"defineSlots"
|
|
37
|
+
],
|
|
38
|
+
defineExposeLast: true
|
|
39
|
+
}],
|
|
40
|
+
"vue/block-order": ["error", { order: [
|
|
41
|
+
"script",
|
|
42
|
+
"template",
|
|
43
|
+
"style"
|
|
44
|
+
] }],
|
|
45
|
+
"vue/attributes-order": ["error", { order: [
|
|
46
|
+
"DEFINITION",
|
|
47
|
+
"LIST_RENDERING",
|
|
48
|
+
"CONDITIONALS",
|
|
49
|
+
"RENDER_MODIFIERS",
|
|
50
|
+
"GLOBAL",
|
|
51
|
+
"UNIQUE",
|
|
52
|
+
"TWO_WAY_BINDING",
|
|
53
|
+
"OTHER_DIRECTIVES",
|
|
54
|
+
"OTHER_ATTR",
|
|
55
|
+
"EVENTS",
|
|
56
|
+
"CONTENT"
|
|
57
|
+
] }],
|
|
58
|
+
"vue/v-on-event-hyphenation": [
|
|
59
|
+
"error",
|
|
60
|
+
"never",
|
|
61
|
+
{ autofix: true }
|
|
62
|
+
],
|
|
63
|
+
"vue/attribute-hyphenation": [
|
|
64
|
+
"error",
|
|
65
|
+
"never",
|
|
66
|
+
{ ignoreTags: [
|
|
67
|
+
"i-",
|
|
68
|
+
"v-",
|
|
69
|
+
"v-bind"
|
|
70
|
+
] }
|
|
71
|
+
],
|
|
72
|
+
"vue/prop-name-casing": ["error", "camelCase"],
|
|
73
|
+
"vue/component-name-in-template-casing": [
|
|
74
|
+
"error",
|
|
75
|
+
"PascalCase",
|
|
76
|
+
{
|
|
77
|
+
ignores: [
|
|
78
|
+
"router-view",
|
|
79
|
+
"router-link",
|
|
80
|
+
"scroll-view"
|
|
81
|
+
],
|
|
82
|
+
registeredComponentsOnly: false
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
118
86
|
};
|
|
87
|
+
const defaultJsConfig = { overrides: {
|
|
88
|
+
"no-inline-comments": "error",
|
|
89
|
+
"unicorn/no-useless-spread": "error",
|
|
90
|
+
"curly": ["error", "all"],
|
|
91
|
+
"no-undefined": "error",
|
|
92
|
+
"no-cond-assign": ["error", "always"],
|
|
93
|
+
"no-constant-condition": "error",
|
|
94
|
+
"no-restricted-syntax": "error",
|
|
95
|
+
"no-global-assign": "error",
|
|
96
|
+
"no-unused-vars": "error",
|
|
97
|
+
"no-var": "error",
|
|
98
|
+
"prefer-const": ["error", {
|
|
99
|
+
destructuring: "any",
|
|
100
|
+
ignoreReadBeforeAssign: false
|
|
101
|
+
}]
|
|
102
|
+
} };
|
|
103
|
+
const defaultTsConfig = { overrides: {
|
|
104
|
+
"ts/no-unsafe-assignment": "off",
|
|
105
|
+
"ts/no-unsafe-call": "off",
|
|
106
|
+
"ts/no-unsafe-argument": "off",
|
|
107
|
+
"ts/no-unsafe-return": "off",
|
|
108
|
+
"ts/member-ordering": ["error"],
|
|
109
|
+
"ts/no-extra-non-null-assertion": "error",
|
|
110
|
+
"ts/no-non-null-assertion": "error",
|
|
111
|
+
"ts/no-explicit-any": ["error", {
|
|
112
|
+
fixToUnknown: true,
|
|
113
|
+
ignoreRestArgs: true
|
|
114
|
+
}],
|
|
115
|
+
"ts/no-namespace": "error",
|
|
116
|
+
"ts/no-unused-vars": ["error", {
|
|
117
|
+
vars: "all",
|
|
118
|
+
args: "after-used",
|
|
119
|
+
ignoreRestSiblings: false
|
|
120
|
+
}]
|
|
121
|
+
} };
|
|
119
122
|
const defaultFormatterConfig = {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
};
|
|
134
|
-
const defaultStrictTsConfig = {
|
|
135
|
-
overrides: {
|
|
136
|
-
"ts/no-unsafe-assignment": "off",
|
|
137
|
-
"ts/no-unsafe-call": "off",
|
|
138
|
-
"ts/no-unsafe-argument": "off",
|
|
139
|
-
"ts/no-unsafe-return": "off",
|
|
140
|
-
"ts/no-floating-promises": "error"
|
|
141
|
-
}
|
|
123
|
+
css: "prettier",
|
|
124
|
+
html: "prettier",
|
|
125
|
+
prettierOptions: {
|
|
126
|
+
printWidth: 160,
|
|
127
|
+
tabWidth: 2,
|
|
128
|
+
arrowParens: "always",
|
|
129
|
+
vueIndentScriptAndStyle: true,
|
|
130
|
+
useTabs: false,
|
|
131
|
+
singleQuote: true,
|
|
132
|
+
jsxSingleQuote: true,
|
|
133
|
+
trailingComma: "all",
|
|
134
|
+
bracketSpacing: true
|
|
135
|
+
}
|
|
142
136
|
};
|
|
137
|
+
/**
|
|
138
|
+
* 严格 ts 模式 的默认配置
|
|
139
|
+
*
|
|
140
|
+
* 这些配置需要 配置 parserOptions 和 tsconfigPath 等
|
|
141
|
+
* @see https://typescript-eslint.io/getting-started/typed-linting
|
|
142
|
+
*/
|
|
143
|
+
const defaultStrictTsConfig = { overrides: {
|
|
144
|
+
"ts/no-unsafe-assignment": "off",
|
|
145
|
+
"ts/no-unsafe-call": "off",
|
|
146
|
+
"ts/no-unsafe-argument": "off",
|
|
147
|
+
"ts/no-unsafe-return": "off",
|
|
148
|
+
"ts/no-floating-promises": "error"
|
|
149
|
+
} };
|
|
143
150
|
const defaultStylisticConfig = {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
"ts/unbound-method": "off",
|
|
158
|
-
"ts/no-unsafe-argument": "off",
|
|
159
|
-
"ts/no-unsafe-assignment": "off",
|
|
160
|
-
"ts/no-unsafe-member-access": "off",
|
|
161
|
-
"ts/no-unsafe-call": "off",
|
|
162
|
-
"ts/no-unsafe-return": "off"
|
|
163
|
-
}
|
|
151
|
+
jsx: true,
|
|
152
|
+
indent: 2,
|
|
153
|
+
quotes: "single",
|
|
154
|
+
semi: false,
|
|
155
|
+
overrides: {
|
|
156
|
+
"style/no-multiple-empty-lines": ["error", {
|
|
157
|
+
max: 1,
|
|
158
|
+
maxBOF: 0,
|
|
159
|
+
maxEOF: 0
|
|
160
|
+
}],
|
|
161
|
+
"style/brace-style": ["error", "1tbs"],
|
|
162
|
+
"style/arrow-parens": ["error", "always"]
|
|
163
|
+
}
|
|
164
164
|
};
|
|
165
|
+
const defaultTestConfig = { overrides: {
|
|
166
|
+
"no-console": "off",
|
|
167
|
+
"ts/unbound-method": "off",
|
|
168
|
+
"ts/no-unsafe-argument": "off",
|
|
169
|
+
"ts/no-unsafe-assignment": "off",
|
|
170
|
+
"ts/no-unsafe-member-access": "off",
|
|
171
|
+
"ts/no-unsafe-call": "off",
|
|
172
|
+
"ts/no-unsafe-return": "off"
|
|
173
|
+
} };
|
|
165
174
|
function mergeWithDefaults(value, defaults) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
return false;
|
|
180
|
-
}
|
|
181
|
-
if (value === true) {
|
|
182
|
-
return defaults;
|
|
183
|
-
}
|
|
184
|
-
if (typeof value === "object" && typeof defaults === "object") {
|
|
185
|
-
return {
|
|
186
|
-
...defaults,
|
|
187
|
-
...value
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
return value;
|
|
175
|
+
if (defaults === false || defaults === null || defaults === void 0) {
|
|
176
|
+
if (value === true) return true;
|
|
177
|
+
if (value === false || value === null) return false;
|
|
178
|
+
return value;
|
|
179
|
+
}
|
|
180
|
+
if (value === void 0) return defaults;
|
|
181
|
+
if (value === false || value === null) return false;
|
|
182
|
+
if (value === true) return defaults;
|
|
183
|
+
if (typeof value === "object" && typeof defaults === "object") return {
|
|
184
|
+
...defaults,
|
|
185
|
+
...value
|
|
186
|
+
};
|
|
187
|
+
return value;
|
|
191
188
|
}
|
|
189
|
+
|
|
190
|
+
//#endregion
|
|
192
191
|
exports.defaultFormatterConfig = defaultFormatterConfig;
|
|
193
192
|
exports.defaultJsConfig = defaultJsConfig;
|
|
194
193
|
exports.defaultStrictTsConfig = defaultStrictTsConfig;
|
|
@@ -198,3 +197,4 @@ exports.defaultTsConfig = defaultTsConfig;
|
|
|
198
197
|
exports.defaultUnocssConfig = defaultUnocssConfig;
|
|
199
198
|
exports.defaultVueConfig = defaultVueConfig;
|
|
200
199
|
exports.mergeWithDefaults = mergeWithDefaults;
|
|
200
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["defaultUnocssConfig: AntFuUnocssConfig","defaultVueConfig: AntFuVueConfig","defaultJsConfig: AntFuJsConfig","defaultTsConfig: AntFuTsConfig","defaultFormatterConfig: AntFuFormatterConfig","defaultStrictTsConfig: AntFuTsConfig","defaultStylisticConfig: AntFuStylisticConfig","defaultTestConfig: AntFuTestConfig","value?: boolean | T | null","defaults?: boolean | T | null"],"sources":["../../src/defaults/index.ts"],"sourcesContent":["import type { AntFuFormatterConfig, AntFuJsConfig, AntFuStylisticConfig, AntFuTestConfig, AntFuTsConfig, AntFuUnocssConfig, AntFuVueConfig } from '../types'\n\nexport const defaultUnocssConfig: AntFuUnocssConfig = {\n attributify: true,\n strict: true,\n}\n\nexport const defaultVueConfig: AntFuVueConfig = {\n vueVersion: 3,\n overrides: {\n 'vue/html-self-closing': ['error', {\n html: {\n void: 'always',\n normal: 'always',\n component: 'always',\n },\n }],\n 'vue/html-comment-content-spacing': ['error', 'always', { exceptions: [] }],\n 'vue/html-comment-indent': ['error', 2],\n 'vue/html-indent': ['error', 2, {\n baseIndent: 0,\n alignAttributesVertically: true,\n }],\n 'vue/define-emits-declaration': ['error', 'type-literal'],\n 'vue/define-props-declaration': ['error', 'type-based'],\n 'vue/define-macros-order': [\n 'error',\n {\n order: [\n 'defineProps',\n 'defineEmits',\n 'defineModel',\n 'defineSlots',\n ],\n defineExposeLast: true,\n },\n ],\n 'vue/block-order': [\n 'error',\n {\n order: ['script', 'template', 'style'],\n },\n ],\n 'vue/attributes-order': [\n 'error',\n {\n order: ['DEFINITION', 'LIST_RENDERING', 'CONDITIONALS', 'RENDER_MODIFIERS', 'GLOBAL', 'UNIQUE', 'TWO_WAY_BINDING', 'OTHER_DIRECTIVES', 'OTHER_ATTR', 'EVENTS', 'CONTENT'],\n },\n ],\n 'vue/v-on-event-hyphenation': [\n 'error',\n 'never',\n {\n autofix: true,\n },\n ],\n 'vue/attribute-hyphenation': [\n 'error',\n 'never',\n {\n ignoreTags: ['i-', 'v-', 'v-bind'],\n },\n ],\n 'vue/prop-name-casing': ['error', 'camelCase'],\n 'vue/component-name-in-template-casing': [\n 'error',\n 'PascalCase',\n {\n ignores: ['router-view', 'router-link', 'scroll-view'],\n registeredComponentsOnly: false,\n },\n ],\n },\n}\n\nexport const defaultJsConfig: AntFuJsConfig = {\n overrides: {\n 'no-inline-comments': 'error',\n 'unicorn/no-useless-spread': 'error',\n\n 'curly': ['error', 'all'],\n 'no-undefined': 'error',\n 'no-cond-assign': ['error', 'always'],\n 'no-constant-condition': 'error',\n 'no-restricted-syntax': 'error',\n 'no-global-assign': 'error',\n 'no-unused-vars': 'error',\n 'no-var': 'error',\n 'prefer-const': [\n 'error',\n {\n destructuring: 'any',\n ignoreReadBeforeAssign: false,\n },\n ],\n },\n}\n\nexport const defaultTsConfig: AntFuTsConfig = {\n overrides: {\n 'ts/no-unsafe-assignment': 'off',\n 'ts/no-unsafe-call': 'off',\n 'ts/no-unsafe-argument': 'off',\n 'ts/no-unsafe-return': 'off',\n 'ts/member-ordering': ['error'],\n 'ts/no-extra-non-null-assertion': 'error',\n 'ts/no-non-null-assertion': 'error',\n 'ts/no-explicit-any': ['error', {\n fixToUnknown: true,\n ignoreRestArgs: true,\n }],\n 'ts/no-namespace': 'error',\n 'ts/no-unused-vars': [\n 'error',\n {\n vars: 'all',\n args: 'after-used',\n ignoreRestSiblings: false,\n },\n ],\n },\n}\n\nexport const defaultFormatterConfig: AntFuFormatterConfig = {\n css: 'prettier',\n html: 'prettier',\n prettierOptions: {\n printWidth: 160,\n tabWidth: 2,\n arrowParens: 'always',\n vueIndentScriptAndStyle: true,\n useTabs: false,\n singleQuote: true,\n jsxSingleQuote: true,\n trailingComma: 'all',\n bracketSpacing: true,\n },\n}\n\n/**\n * 严格 ts 模式 的默认配置\n *\n * 这些配置需要 配置 parserOptions 和 tsconfigPath 等\n * @see https://typescript-eslint.io/getting-started/typed-linting\n */\nexport const defaultStrictTsConfig: AntFuTsConfig = {\n overrides: {\n 'ts/no-unsafe-assignment': 'off',\n 'ts/no-unsafe-call': 'off',\n 'ts/no-unsafe-argument': 'off',\n 'ts/no-unsafe-return': 'off',\n 'ts/no-floating-promises': 'error',\n },\n}\n\nexport const defaultStylisticConfig: AntFuStylisticConfig = {\n jsx: true,\n indent: 2,\n quotes: 'single',\n semi: false,\n overrides: {\n 'style/no-multiple-empty-lines': ['error', { max: 1, maxBOF: 0, maxEOF: 0 }],\n 'style/brace-style': ['error', '1tbs'],\n 'style/arrow-parens': ['error', 'always'],\n },\n}\n\nexport const defaultTestConfig: AntFuTestConfig = {\n overrides: {\n 'no-console': 'off',\n 'ts/unbound-method': 'off',\n 'ts/no-unsafe-argument': 'off',\n 'ts/no-unsafe-assignment': 'off',\n 'ts/no-unsafe-member-access': 'off',\n 'ts/no-unsafe-call': 'off',\n 'ts/no-unsafe-return': 'off',\n },\n}\n\n/**\n * 合并配置项,支持以下场景:\n * 1. 布尔值与对象配置的混合\n * 2. 使用 vite 的 mergeConfig 进行对象合并\n * 3. 处理 undefined 和 null 的默认值\n *\n * @example\n * ```ts\n * // 场景1: 布尔值转换为默认对象\n * mergeWithDefaults(true, { foo: 'bar' }) // => { foo: 'bar' }\n *\n * // 场景2: vite配置合并\n * mergeWithDefaults({ plugins: [vue()] }, { plugins: [unocss()] })\n *\n * // 场景3: undefined/null/false 处理\n * mergeWithDefaults(false, true) // => false\n * ```\n */\nexport function mergeWithDefaults<T extends object>(\n value?: boolean | T | null,\n defaults?: T\n): T\nexport function mergeWithDefaults<T extends object>(\n value?: boolean | T | null,\n defaults?: boolean\n): boolean | T\nexport function mergeWithDefaults<T extends object>(\n value?: boolean | T | null,\n defaults?: boolean | T | null,\n): boolean | T {\n // 处理无默认值的情况\n if (defaults === false || defaults === null || defaults === void 0) {\n if (value === true) {\n return true\n }\n if (value === false || value === null) {\n return false\n }\n return value as T\n }\n\n // 处理 value 为 undefined 的情况\n if (value === void 0) {\n return defaults\n }\n\n // 处理 value 为 false/null 的情况\n if (value === false || value === null) {\n return false\n }\n\n // 处理 value 为 true 的情况\n if (value === true) {\n return defaults\n }\n\n // 如果都是对象,使用 vite 的 mergeConfig 进行合并\n if (typeof value === 'object' && typeof defaults === 'object') {\n return {\n ...defaults,\n ...value,\n }\n }\n\n // 其他情况返回 value\n return value\n}\n"],"mappings":"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"}
|