@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 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;
@@ -1,194 +1,193 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
1
+
2
+ //#region src/defaults/index.ts
3
3
  const defaultUnocssConfig = {
4
- attributify: true,
5
- strict: true
4
+ attributify: true,
5
+ strict: true
6
6
  };
7
7
  const defaultVueConfig = {
8
- vueVersion: 3,
9
- overrides: {
10
- "vue/html-self-closing": ["error", {
11
- html: {
12
- void: "always",
13
- normal: "always",
14
- component: "always"
15
- }
16
- }],
17
- "vue/html-comment-content-spacing": ["error", "always", { exceptions: [] }],
18
- "vue/html-comment-indent": ["error", 2],
19
- "vue/html-indent": ["error", 2, {
20
- baseIndent: 0,
21
- alignAttributesVertically: true
22
- }],
23
- "vue/define-emits-declaration": ["error", "type-literal"],
24
- "vue/define-props-declaration": ["error", "type-based"],
25
- "vue/define-macros-order": [
26
- "error",
27
- {
28
- order: [
29
- "defineProps",
30
- "defineEmits",
31
- "defineModel",
32
- "defineSlots"
33
- ],
34
- defineExposeLast: true
35
- }
36
- ],
37
- "vue/block-order": [
38
- "error",
39
- {
40
- order: ["script", "template", "style"]
41
- }
42
- ],
43
- "vue/attributes-order": [
44
- "error",
45
- {
46
- order: ["DEFINITION", "LIST_RENDERING", "CONDITIONALS", "RENDER_MODIFIERS", "GLOBAL", "UNIQUE", "TWO_WAY_BINDING", "OTHER_DIRECTIVES", "OTHER_ATTR", "EVENTS", "CONTENT"]
47
- }
48
- ],
49
- "vue/v-on-event-hyphenation": [
50
- "error",
51
- "never",
52
- {
53
- autofix: true
54
- }
55
- ],
56
- "vue/attribute-hyphenation": [
57
- "error",
58
- "never",
59
- {
60
- ignoreTags: ["i-", "v-", "v-bind"]
61
- }
62
- ],
63
- "vue/prop-name-casing": ["error", "camelCase"],
64
- "vue/component-name-in-template-casing": [
65
- "error",
66
- "PascalCase",
67
- {
68
- ignores: ["router-view", "router-link", "scroll-view"],
69
- registeredComponentsOnly: false
70
- }
71
- ]
72
- }
73
- };
74
- const defaultJsConfig = {
75
- overrides: {
76
- "no-inline-comments": "error",
77
- "unicorn/no-useless-spread": "error",
78
- "curly": ["error", "all"],
79
- "no-undefined": "error",
80
- "no-cond-assign": ["error", "always"],
81
- "no-constant-condition": "error",
82
- "no-restricted-syntax": "error",
83
- "no-global-assign": "error",
84
- "no-unused-vars": "error",
85
- "no-var": "error",
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
- css: "prettier",
121
- html: "prettier",
122
- prettierOptions: {
123
- printWidth: 160,
124
- tabWidth: 2,
125
- arrowParens: "always",
126
- vueIndentScriptAndStyle: true,
127
- useTabs: false,
128
- singleQuote: true,
129
- jsxSingleQuote: true,
130
- trailingComma: "all",
131
- bracketSpacing: true
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
- jsx: true,
145
- indent: 2,
146
- quotes: "single",
147
- semi: false,
148
- overrides: {
149
- "style/no-multiple-empty-lines": ["error", { max: 1, maxBOF: 0, maxEOF: 0 }],
150
- "style/brace-style": ["error", "1tbs"],
151
- "style/arrow-parens": ["error", "always"]
152
- }
153
- };
154
- const defaultTestConfig = {
155
- overrides: {
156
- "no-console": "off",
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
- if (defaults === false || defaults === null || defaults === void 0) {
167
- if (value === true) {
168
- return true;
169
- }
170
- if (value === false || value === null) {
171
- return false;
172
- }
173
- return value;
174
- }
175
- if (value === void 0) {
176
- return defaults;
177
- }
178
- if (value === false || value === null) {
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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"}