@danielwaltz/eslint-config 3.1.0 → 3.2.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.
Files changed (3) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/index.mjs +104 -116
  3. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -1,6 +1,22 @@
1
1
  # Changelog
2
2
 
3
3
 
4
+ ## v3.2.0
5
+
6
+ [compare changes](https://github.com/danielwaltz/eslint-config/compare/v3.1.0...v3.2.0)
7
+
8
+ ### 🚀 Enhancements
9
+
10
+ - Update configs ([c997c0c](https://github.com/danielwaltz/eslint-config/commit/c997c0c))
11
+
12
+ ### 🩹 Fixes
13
+
14
+ - Allow top level await in vue sfcs ([b443be9](https://github.com/danielwaltz/eslint-config/commit/b443be9))
15
+
16
+ ### ❤️ Contributors
17
+
18
+ - Daniel Waltz ([@danielwaltz](https://github.com/danielwaltz))
19
+
4
20
  ## v3.1.0
5
21
 
6
22
  [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"] })
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.0",
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
  }