@danielwaltz/eslint-config 3.1.0 → 3.2.1

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.
Files changed (3) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/index.mjs +104 -116
  3. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -1,6 +1,34 @@
1
1
  # Changelog
2
2
 
3
3
 
4
+ ## v3.2.1
5
+
6
+ [compare changes](https://github.com/danielwaltz/eslint-config/compare/v3.2.0...v3.2.1)
7
+
8
+ ### 🩹 Fixes
9
+
10
+ - Only spread rules for vue baseline config ([91fe524](https://github.com/danielwaltz/eslint-config/commit/91fe524))
11
+
12
+ ### ❤️ Contributors
13
+
14
+ - Daniel Waltz ([@danielwaltz](https://github.com/danielwaltz))
15
+
16
+ ## v3.2.0
17
+
18
+ [compare changes](https://github.com/danielwaltz/eslint-config/compare/v3.1.0...v3.2.0)
19
+
20
+ ### 🚀 Enhancements
21
+
22
+ - Update configs ([c997c0c](https://github.com/danielwaltz/eslint-config/commit/c997c0c))
23
+
24
+ ### 🩹 Fixes
25
+
26
+ - Allow top level await in vue sfcs ([b443be9](https://github.com/danielwaltz/eslint-config/commit/b443be9))
27
+
28
+ ### ❤️ Contributors
29
+
30
+ - Daniel Waltz ([@danielwaltz](https://github.com/danielwaltz))
31
+
4
32
  ## v3.1.0
5
33
 
6
34
  [compare changes](https://github.com/danielwaltz/eslint-config/compare/v3.0.1...v3.1.0)
package/dist/index.mjs CHANGED
@@ -1,30 +1,21 @@
1
- import { hasVue, sxzz } from "@sxzz/eslint-config";
1
+ import { baseline, hasVue, sxzz } from "@sxzz/eslint-config";
2
2
  import e18e from "@e18e/eslint-plugin";
3
3
  import erasableSyntaxOnlyPlugin from "eslint-plugin-erasable-syntax-only";
4
4
  import vueA11yPlugin from "eslint-plugin-vuejs-accessibility";
5
- import { composer, defineFlatConfig } from "eslint-flat-config-utils";
6
-
7
- export * from "@sxzz/eslint-config"
8
-
9
- //#region src/configs/e18e.ts
5
+ import { composer as composer$1, defineFlatConfig } from "eslint-flat-config-utils";
6
+ export * from "@sxzz/eslint-config";
10
7
  function e18eConfigs() {
11
8
  return [{
12
9
  ...e18e.configs.recommended,
13
10
  name: "danielwaltz/e18e"
14
11
  }];
15
12
  }
16
-
17
- //#endregion
18
- //#region src/configs/typescript.ts
19
13
  function typescriptConfigs() {
20
14
  return [{
21
15
  name: "danielwaltz/erasable-syntax-only",
22
16
  ...erasableSyntaxOnlyPlugin.configs.recommended
23
17
  }];
24
18
  }
25
-
26
- //#endregion
27
- //#region src/configs/unicorn.ts
28
19
  function unicornConfigs() {
29
20
  return [{
30
21
  name: "danielwaltz/unicorn",
@@ -38,115 +29,112 @@ function unicornConfigs() {
38
29
  }] }
39
30
  }];
40
31
  }
41
-
42
- //#endregion
43
- //#region src/configs/vue.ts
44
32
  function vueConfigs() {
45
- return [...vueA11yPlugin.configs["flat/recommended"], {
46
- name: "danielwaltz/vue",
47
- files: ["**/*.vue"],
48
- rules: {
49
- "vue/block-lang": ["error", { script: { lang: ["ts", "tsx"] } }],
50
- "vue/block-order": ["error", { order: [
51
- "script",
52
- "template",
53
- "style"
54
- ] }],
55
- "vue/block-tag-newline": "error",
56
- "vue/component-api-style": ["error", ["script-setup"]],
57
- "vue/component-name-in-template-casing": "error",
58
- "vue/component-options-name-casing": "error",
59
- "vue/custom-event-name-casing": "error",
60
- "vue/define-emits-declaration": ["error", "type-based"],
61
- "vue/define-macros-order": ["error", {
62
- order: [
63
- "definePageMeta",
64
- "defineOptions",
65
- "defineModel",
66
- "defineProps",
67
- "defineEmits",
68
- "defineSlots"
33
+ return [
34
+ ...vueA11yPlugin.configs["flat/recommended"],
35
+ {
36
+ name: "danielwaltz/vue",
37
+ files: ["**/*.vue"],
38
+ rules: {
39
+ "vue/block-lang": ["error", { script: { lang: ["ts", "tsx"] } }],
40
+ "vue/block-order": ["error", { order: [
41
+ "script",
42
+ "template",
43
+ "style"
44
+ ] }],
45
+ "vue/block-tag-newline": "error",
46
+ "vue/component-api-style": ["error", ["script-setup"]],
47
+ "vue/component-name-in-template-casing": "error",
48
+ "vue/component-options-name-casing": "error",
49
+ "vue/custom-event-name-casing": "error",
50
+ "vue/define-emits-declaration": ["error", "type-based"],
51
+ "vue/define-macros-order": ["error", {
52
+ order: [
53
+ "definePageMeta",
54
+ "defineOptions",
55
+ "defineModel",
56
+ "defineProps",
57
+ "defineEmits",
58
+ "defineSlots"
59
+ ],
60
+ defineExposeLast: true
61
+ }],
62
+ "vue/define-props-declaration": ["error", "type-based"],
63
+ "vue/enforce-style-attribute": ["error", { allow: ["scoped"] }],
64
+ "vue/html-button-has-type": "error",
65
+ "vue/html-comment-content-newline": "error",
66
+ "vue/html-comment-content-spacing": "error",
67
+ "vue/html-comment-indent": "error",
68
+ "vue/match-component-file-name": ["error", { extensions: ["vue", "tsx"] }],
69
+ "vue/match-component-import-name": "error",
70
+ "vue/next-tick-style": ["error", "promise"],
71
+ "vue/no-boolean-default": "error",
72
+ "vue/no-duplicate-attr-inheritance": "error",
73
+ "vue/no-empty-component-block": "error",
74
+ "vue/no-import-compiler-macros": "error",
75
+ "vue/no-multiple-objects-in-class": "error",
76
+ "vue/no-negated-condition": "error",
77
+ "vue/no-negated-v-if-condition": "error",
78
+ "vue/no-ref-object-reactivity-loss": "error",
79
+ "vue/no-required-prop-with-default": ["error", { autofix: true }],
80
+ "vue/no-reserved-component-names": "error",
81
+ "vue/no-root-v-if": "error",
82
+ "vue/no-template-target-blank": "error",
83
+ "vue/no-undef-directives": "error",
84
+ "vue/no-unsupported-features": ["error", { version: "^3.5.0" }],
85
+ "vue/no-unused-emit-declarations": "error",
86
+ "vue/no-unused-properties": "error",
87
+ "vue/no-unused-refs": "error",
88
+ "vue/no-use-v-else-with-v-for": "error",
89
+ "vue/no-useless-mustaches": "error",
90
+ "vue/no-useless-v-bind": "error",
91
+ "vue/no-v-text": "error",
92
+ "vue/padding-line-between-blocks": "error",
93
+ "vue/prefer-define-options": "error",
94
+ "vue/prefer-prop-type-boolean-first": "error",
95
+ "vue/prefer-separate-static-class": "error",
96
+ "vue/prefer-true-attribute-shorthand": "error",
97
+ "vue/prefer-use-template-ref": "error",
98
+ "vue/require-direct-export": "error",
99
+ "vue/require-macro-variable-name": "error",
100
+ "vue/require-name-property": "error",
101
+ "vue/require-typed-ref": "error",
102
+ "vue/slot-name-casing": "error",
103
+ "vue/v-bind-style": [
104
+ "error",
105
+ "shorthand",
106
+ { sameNameShorthand: "always" }
69
107
  ],
70
- defineExposeLast: true
71
- }],
72
- "vue/define-props-declaration": ["error", "type-based"],
73
- "vue/enforce-style-attribute": ["error", { allow: ["scoped"] }],
74
- "vue/html-button-has-type": "error",
75
- "vue/html-comment-content-newline": "error",
76
- "vue/html-comment-content-spacing": "error",
77
- "vue/html-comment-indent": "error",
78
- "vue/match-component-file-name": ["error", { extensions: ["vue", "tsx"] }],
79
- "vue/match-component-import-name": "error",
80
- "vue/next-tick-style": ["error", "promise"],
81
- "vue/no-boolean-default": "error",
82
- "vue/no-duplicate-attr-inheritance": "error",
83
- "vue/no-empty-component-block": "error",
84
- "vue/no-import-compiler-macros": "error",
85
- "vue/no-multiple-objects-in-class": "error",
86
- "vue/no-negated-condition": "error",
87
- "vue/no-negated-v-if-condition": "error",
88
- "vue/no-ref-object-reactivity-loss": "error",
89
- "vue/no-required-prop-with-default": ["error", { autofix: true }],
90
- "vue/no-reserved-component-names": "error",
91
- "vue/no-root-v-if": "error",
92
- "vue/no-template-target-blank": "error",
93
- "vue/no-undef-directives": "error",
94
- "vue/no-unsupported-features": ["error", { version: "^3.5.0" }],
95
- "vue/no-unused-emit-declarations": "error",
96
- "vue/no-unused-properties": "error",
97
- "vue/no-unused-refs": "error",
98
- "vue/no-use-v-else-with-v-for": "error",
99
- "vue/no-useless-mustaches": "error",
100
- "vue/no-useless-v-bind": "error",
101
- "vue/no-v-text": "error",
102
- "vue/padding-line-between-blocks": "error",
103
- "vue/prefer-define-options": "error",
104
- "vue/prefer-prop-type-boolean-first": "error",
105
- "vue/prefer-separate-static-class": "error",
106
- "vue/prefer-true-attribute-shorthand": "error",
107
- "vue/prefer-use-template-ref": "error",
108
- "vue/require-direct-export": "error",
109
- "vue/require-macro-variable-name": "error",
110
- "vue/require-name-property": "error",
111
- "vue/require-typed-ref": "error",
112
- "vue/slot-name-casing": "error",
113
- "vue/v-bind-style": [
114
- "error",
115
- "shorthand",
116
- { sameNameShorthand: "always" }
117
- ],
118
- "vue/v-for-delimiter-style": "error",
119
- "vuejs-accessibility/alt-text": ["error", { img: [
120
- "AppImg",
121
- "BaseImg",
122
- "NuxtImg"
123
- ] }],
124
- "vuejs-accessibility/anchor-has-content": ["error", { components: [
125
- "AppLink",
126
- "BaseLink",
127
- "NuxtLink"
128
- ] }]
108
+ "vue/v-for-delimiter-style": "error",
109
+ "vuejs-accessibility/alt-text": ["error", { img: [
110
+ "AppImg",
111
+ "BaseImg",
112
+ "NuxtImg"
113
+ ] }],
114
+ "vuejs-accessibility/anchor-has-content": ["error", { components: [
115
+ "AppLink",
116
+ "BaseLink",
117
+ "NuxtLink"
118
+ ] }]
119
+ }
120
+ },
121
+ {
122
+ name: "danielwaltz/vue/baseline",
123
+ files: ["**/*.vue"],
124
+ ...baseline({ ignoreFeatures: ["top-level-await"] }).at(0)?.rules
129
125
  }
130
- }];
126
+ ];
131
127
  }
132
-
133
- //#endregion
134
- //#region src/utils.ts
135
128
  function defineFlatConfigs(...configs) {
136
- return composer(...configs);
129
+ return composer$1(...configs);
137
130
  }
138
-
139
- //#endregion
140
- //#region src/index.ts
141
131
  function danielwaltz(...params) {
142
- const composer$1 = defineFlatConfigs();
143
- composer$1.prepend(sxzz(...params));
144
- composer$1.append(e18eConfigs());
145
- composer$1.append(typescriptConfigs());
146
- composer$1.append(unicornConfigs());
147
- if (hasVue()) composer$1.append(vueConfigs());
148
- return composer$1;
132
+ const composer = defineFlatConfigs();
133
+ composer.prepend(sxzz(...params));
134
+ composer.append(e18eConfigs());
135
+ composer.append(typescriptConfigs());
136
+ composer.append(unicornConfigs());
137
+ if (hasVue()) composer.append(vueConfigs());
138
+ return composer;
149
139
  }
150
-
151
- //#endregion
152
- export { danielwaltz, defineFlatConfig, defineFlatConfigs };
140
+ export { danielwaltz, defineFlatConfig, defineFlatConfigs };
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@danielwaltz/eslint-config",
3
3
  "type": "module",
4
- "version": "3.1.0",
5
- "packageManager": "pnpm@10.28.0",
4
+ "version": "3.2.1",
5
+ "packageManager": "pnpm@10.28.2",
6
6
  "author": "Daniel Waltz",
7
7
  "license": "MIT",
8
8
  "repository": {
@@ -45,17 +45,17 @@
45
45
  "prettier": ">=3"
46
46
  },
47
47
  "dependencies": {
48
- "@e18e/eslint-plugin": "^0.1.3",
49
- "@sxzz/eslint-config": "^7.4.5",
50
- "eslint-flat-config-utils": "^2.1.4",
48
+ "@e18e/eslint-plugin": "^0.1.4",
49
+ "@sxzz/eslint-config": "^7.6.0",
50
+ "eslint-flat-config-utils": "^3.0.0",
51
51
  "eslint-plugin-erasable-syntax-only": "^0.4.0",
52
52
  "eslint-plugin-vuejs-accessibility": "^2.4.1"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@tsconfig/node24": "^24.0.4",
56
- "@types/node": "~24.10.9",
56
+ "@types/node": "~24.10.11",
57
57
  "changelogen": "^0.6.2",
58
- "obuild": "^0.4.14",
58
+ "obuild": "^0.4.22",
59
59
  "typescript": "~5.9.3"
60
60
  }
61
61
  }