@xiaohe01/stylelint-config 2.2.1 → 2.3.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.
package/dist/index.cjs CHANGED
@@ -14,6 +14,9 @@ const GLOB_ALL = [
14
14
  ];
15
15
 
16
16
  function core(options = {}) {
17
+ const {
18
+ vue = false
19
+ } = options;
17
20
  return [
18
21
  {
19
22
  name: "xiaohe/core/rules",
@@ -108,6 +111,28 @@ function core(options = {}) {
108
111
  ]
109
112
  }
110
113
  ],
114
+ ...vue ? {
115
+ "selector-pseudo-class-no-unknown": [
116
+ true,
117
+ {
118
+ ignorePseudoClasses: [
119
+ "deep",
120
+ "global",
121
+ "slotted"
122
+ ]
123
+ }
124
+ ],
125
+ "selector-pseudo-element-no-unknown": [
126
+ true,
127
+ {
128
+ ignorePseudoElements: [
129
+ "v-deep",
130
+ "v-global",
131
+ "v-slotted"
132
+ ]
133
+ }
134
+ ]
135
+ } : {},
111
136
  ...options.overrides
112
137
  }
113
138
  }
@@ -128,11 +153,6 @@ function css(options = {}) {
128
153
 
129
154
  function html(options = {}) {
130
155
  return [
131
- {
132
- name: "xiaohe/html/setup",
133
- files: GLOB_HTML,
134
- customSyntax: "postcss-html"
135
- },
136
156
  {
137
157
  name: "xiaohe/html/rules",
138
158
  files: GLOB_HTML,
@@ -144,18 +164,16 @@ function html(options = {}) {
144
164
  }
145
165
 
146
166
  function scss(options = {}) {
167
+ const {
168
+ vue = false
169
+ } = options;
147
170
  return [
148
- {
149
- name: "xiaohe/scss/setup",
150
- files: GLOB_SCSS,
151
- customSyntax: "postcss-scss",
152
- plugins: [
153
- "stylelint-scss"
154
- ]
155
- },
156
171
  {
157
172
  name: "xiaohe/scss/rules",
158
- files: GLOB_SCSS,
173
+ files: [
174
+ ...GLOB_SCSS,
175
+ ...vue ? GLOB_VUE : []
176
+ ],
159
177
  rules: {
160
178
  "annotation-no-unknown": null,
161
179
  "at-rule-no-unknown": null,
@@ -192,51 +210,51 @@ function scss(options = {}) {
192
210
  ];
193
211
  }
194
212
 
195
- function vue(options = {}) {
213
+ function setup(options = {}) {
196
214
  const {
197
- scss = false
215
+ scss = false,
216
+ html = false,
217
+ vue = false
198
218
  } = options;
199
- return [
200
- {
219
+ const overrides = [];
220
+ if (html) {
221
+ overrides.push({
222
+ name: "xiaohe/html/setup",
223
+ files: GLOB_HTML,
224
+ customSyntax: "postcss-html"
225
+ });
226
+ }
227
+ if (vue) {
228
+ overrides.push({
201
229
  name: "xiaohe/vue/setup",
202
230
  files: GLOB_VUE,
203
- customSyntax: "postcss-html"
204
- },
231
+ customSyntax: "postcss-html",
232
+ plugins: [
233
+ ...scss ? [
234
+ "stylelint-scss"
235
+ ] : []
236
+ ]
237
+ });
238
+ }
239
+ if (scss) {
240
+ overrides.push({
241
+ name: "xiaohe/scss/setup",
242
+ files: GLOB_SCSS,
243
+ customSyntax: "postcss-scss",
244
+ plugins: [
245
+ "stylelint-scss"
246
+ ]
247
+ });
248
+ }
249
+ return overrides;
250
+ }
251
+
252
+ function vue(options = {}) {
253
+ return [
205
254
  {
206
255
  name: "xiaohe/vue/rules",
207
256
  files: GLOB_VUE,
208
257
  rules: {
209
- "function-no-unknown": [
210
- true,
211
- {
212
- ignoreFunctions: [
213
- "v-bind"
214
- ]
215
- }
216
- ],
217
- "selector-pseudo-class-no-unknown": [
218
- true,
219
- {
220
- ignorePseudoClasses: [
221
- "deep",
222
- "global",
223
- "slotted"
224
- ]
225
- }
226
- ],
227
- "selector-pseudo-element-no-unknown": [
228
- true,
229
- {
230
- ignorePseudoElements: [
231
- "v-deep",
232
- "v-global",
233
- "v-slotted"
234
- ]
235
- }
236
- ],
237
- ...scss ? {
238
- "function-no-unknown": null
239
- } : {},
240
258
  ...options.overrides
241
259
  }
242
260
  }
@@ -264,20 +282,29 @@ function isPkgExists(pkg) {
264
282
 
265
283
  function defineConfig(options = {}, ...userOverrides) {
266
284
  const {
267
- css: enableCss = true,
268
- html: enableHtml = true,
269
285
  scss: enableScss = isPkgExists(SCSS_PACKAGES),
286
+ html: enableHtml = true,
270
287
  vue: enableVue = isPkgExists(VUE_PACKAGES)
271
288
  } = options;
272
289
  const overrides = [
290
+ ...setup({
291
+ scss: !!enableScss,
292
+ html: !!enableHtml,
293
+ vue: !!enableVue
294
+ }),
273
295
  ...core({
274
- overrides: getOverrides(options.core)
296
+ overrides: getOverrides(options.core),
297
+ vue: !!enableVue
298
+ }),
299
+ ...css({
300
+ overrides: getOverrides(options.css)
275
301
  })
276
302
  ];
277
- if (enableCss) {
303
+ if (enableScss) {
278
304
  overrides.push(
279
- ...css({
280
- overrides: getOverrides(options.css)
305
+ ...scss({
306
+ overrides: getOverrides(options.scss),
307
+ vue: !!enableVue
281
308
  })
282
309
  );
283
310
  }
@@ -288,18 +315,10 @@ function defineConfig(options = {}, ...userOverrides) {
288
315
  })
289
316
  );
290
317
  }
291
- if (enableScss) {
292
- overrides.push(
293
- ...scss({
294
- overrides: getOverrides(options.scss)
295
- })
296
- );
297
- }
298
318
  if (enableVue) {
299
319
  overrides.push(
300
320
  ...vue({
301
- overrides: getOverrides(options.vue),
302
- scss: !!enableScss
321
+ overrides: getOverrides(options.vue)
303
322
  })
304
323
  );
305
324
  }
package/dist/index.d.cts CHANGED
@@ -14,23 +14,21 @@ interface OptionsConfig {
14
14
  */
15
15
  core?: OptionsOverrides;
16
16
  /**
17
- * Enable CSS support.
17
+ * CSS rules.
18
+ */
19
+ css?: OptionsOverrides;
20
+ /**
21
+ * Enable Scss support.
18
22
  *
19
- * @default true
23
+ * @default auto-detect based on the dependencies
20
24
  */
21
- css?: boolean | OptionsOverrides;
25
+ scss?: boolean | OptionsOverrides;
22
26
  /**
23
27
  * Enable HTML support.
24
28
  *
25
29
  * @default true
26
30
  */
27
31
  html?: boolean | OptionsOverrides;
28
- /**
29
- * Enable Scss support.
30
- *
31
- * @default auto-detect based on the dependencies
32
- */
33
- scss?: boolean | OptionsOverrides;
34
32
  /**
35
33
  * Enable Vue support.
36
34
  *
package/dist/index.d.mts CHANGED
@@ -14,23 +14,21 @@ interface OptionsConfig {
14
14
  */
15
15
  core?: OptionsOverrides;
16
16
  /**
17
- * Enable CSS support.
17
+ * CSS rules.
18
+ */
19
+ css?: OptionsOverrides;
20
+ /**
21
+ * Enable Scss support.
18
22
  *
19
- * @default true
23
+ * @default auto-detect based on the dependencies
20
24
  */
21
- css?: boolean | OptionsOverrides;
25
+ scss?: boolean | OptionsOverrides;
22
26
  /**
23
27
  * Enable HTML support.
24
28
  *
25
29
  * @default true
26
30
  */
27
31
  html?: boolean | OptionsOverrides;
28
- /**
29
- * Enable Scss support.
30
- *
31
- * @default auto-detect based on the dependencies
32
- */
33
- scss?: boolean | OptionsOverrides;
34
32
  /**
35
33
  * Enable Vue support.
36
34
  *
package/dist/index.d.ts CHANGED
@@ -14,23 +14,21 @@ interface OptionsConfig {
14
14
  */
15
15
  core?: OptionsOverrides;
16
16
  /**
17
- * Enable CSS support.
17
+ * CSS rules.
18
+ */
19
+ css?: OptionsOverrides;
20
+ /**
21
+ * Enable Scss support.
18
22
  *
19
- * @default true
23
+ * @default auto-detect based on the dependencies
20
24
  */
21
- css?: boolean | OptionsOverrides;
25
+ scss?: boolean | OptionsOverrides;
22
26
  /**
23
27
  * Enable HTML support.
24
28
  *
25
29
  * @default true
26
30
  */
27
31
  html?: boolean | OptionsOverrides;
28
- /**
29
- * Enable Scss support.
30
- *
31
- * @default auto-detect based on the dependencies
32
- */
33
- scss?: boolean | OptionsOverrides;
34
32
  /**
35
33
  * Enable Vue support.
36
34
  *
package/dist/index.mjs CHANGED
@@ -12,6 +12,9 @@ const GLOB_ALL = [
12
12
  ];
13
13
 
14
14
  function core(options = {}) {
15
+ const {
16
+ vue = false
17
+ } = options;
15
18
  return [
16
19
  {
17
20
  name: "xiaohe/core/rules",
@@ -106,6 +109,28 @@ function core(options = {}) {
106
109
  ]
107
110
  }
108
111
  ],
112
+ ...vue ? {
113
+ "selector-pseudo-class-no-unknown": [
114
+ true,
115
+ {
116
+ ignorePseudoClasses: [
117
+ "deep",
118
+ "global",
119
+ "slotted"
120
+ ]
121
+ }
122
+ ],
123
+ "selector-pseudo-element-no-unknown": [
124
+ true,
125
+ {
126
+ ignorePseudoElements: [
127
+ "v-deep",
128
+ "v-global",
129
+ "v-slotted"
130
+ ]
131
+ }
132
+ ]
133
+ } : {},
109
134
  ...options.overrides
110
135
  }
111
136
  }
@@ -126,11 +151,6 @@ function css(options = {}) {
126
151
 
127
152
  function html(options = {}) {
128
153
  return [
129
- {
130
- name: "xiaohe/html/setup",
131
- files: GLOB_HTML,
132
- customSyntax: "postcss-html"
133
- },
134
154
  {
135
155
  name: "xiaohe/html/rules",
136
156
  files: GLOB_HTML,
@@ -142,18 +162,16 @@ function html(options = {}) {
142
162
  }
143
163
 
144
164
  function scss(options = {}) {
165
+ const {
166
+ vue = false
167
+ } = options;
145
168
  return [
146
- {
147
- name: "xiaohe/scss/setup",
148
- files: GLOB_SCSS,
149
- customSyntax: "postcss-scss",
150
- plugins: [
151
- "stylelint-scss"
152
- ]
153
- },
154
169
  {
155
170
  name: "xiaohe/scss/rules",
156
- files: GLOB_SCSS,
171
+ files: [
172
+ ...GLOB_SCSS,
173
+ ...vue ? GLOB_VUE : []
174
+ ],
157
175
  rules: {
158
176
  "annotation-no-unknown": null,
159
177
  "at-rule-no-unknown": null,
@@ -190,51 +208,51 @@ function scss(options = {}) {
190
208
  ];
191
209
  }
192
210
 
193
- function vue(options = {}) {
211
+ function setup(options = {}) {
194
212
  const {
195
- scss = false
213
+ scss = false,
214
+ html = false,
215
+ vue = false
196
216
  } = options;
197
- return [
198
- {
217
+ const overrides = [];
218
+ if (html) {
219
+ overrides.push({
220
+ name: "xiaohe/html/setup",
221
+ files: GLOB_HTML,
222
+ customSyntax: "postcss-html"
223
+ });
224
+ }
225
+ if (vue) {
226
+ overrides.push({
199
227
  name: "xiaohe/vue/setup",
200
228
  files: GLOB_VUE,
201
- customSyntax: "postcss-html"
202
- },
229
+ customSyntax: "postcss-html",
230
+ plugins: [
231
+ ...scss ? [
232
+ "stylelint-scss"
233
+ ] : []
234
+ ]
235
+ });
236
+ }
237
+ if (scss) {
238
+ overrides.push({
239
+ name: "xiaohe/scss/setup",
240
+ files: GLOB_SCSS,
241
+ customSyntax: "postcss-scss",
242
+ plugins: [
243
+ "stylelint-scss"
244
+ ]
245
+ });
246
+ }
247
+ return overrides;
248
+ }
249
+
250
+ function vue(options = {}) {
251
+ return [
203
252
  {
204
253
  name: "xiaohe/vue/rules",
205
254
  files: GLOB_VUE,
206
255
  rules: {
207
- "function-no-unknown": [
208
- true,
209
- {
210
- ignoreFunctions: [
211
- "v-bind"
212
- ]
213
- }
214
- ],
215
- "selector-pseudo-class-no-unknown": [
216
- true,
217
- {
218
- ignorePseudoClasses: [
219
- "deep",
220
- "global",
221
- "slotted"
222
- ]
223
- }
224
- ],
225
- "selector-pseudo-element-no-unknown": [
226
- true,
227
- {
228
- ignorePseudoElements: [
229
- "v-deep",
230
- "v-global",
231
- "v-slotted"
232
- ]
233
- }
234
- ],
235
- ...scss ? {
236
- "function-no-unknown": null
237
- } : {},
238
256
  ...options.overrides
239
257
  }
240
258
  }
@@ -262,20 +280,29 @@ function isPkgExists(pkg) {
262
280
 
263
281
  function defineConfig(options = {}, ...userOverrides) {
264
282
  const {
265
- css: enableCss = true,
266
- html: enableHtml = true,
267
283
  scss: enableScss = isPkgExists(SCSS_PACKAGES),
284
+ html: enableHtml = true,
268
285
  vue: enableVue = isPkgExists(VUE_PACKAGES)
269
286
  } = options;
270
287
  const overrides = [
288
+ ...setup({
289
+ scss: !!enableScss,
290
+ html: !!enableHtml,
291
+ vue: !!enableVue
292
+ }),
271
293
  ...core({
272
- overrides: getOverrides(options.core)
294
+ overrides: getOverrides(options.core),
295
+ vue: !!enableVue
296
+ }),
297
+ ...css({
298
+ overrides: getOverrides(options.css)
273
299
  })
274
300
  ];
275
- if (enableCss) {
301
+ if (enableScss) {
276
302
  overrides.push(
277
- ...css({
278
- overrides: getOverrides(options.css)
303
+ ...scss({
304
+ overrides: getOverrides(options.scss),
305
+ vue: !!enableVue
279
306
  })
280
307
  );
281
308
  }
@@ -286,18 +313,10 @@ function defineConfig(options = {}, ...userOverrides) {
286
313
  })
287
314
  );
288
315
  }
289
- if (enableScss) {
290
- overrides.push(
291
- ...scss({
292
- overrides: getOverrides(options.scss)
293
- })
294
- );
295
- }
296
316
  if (enableVue) {
297
317
  overrides.push(
298
318
  ...vue({
299
- overrides: getOverrides(options.vue),
300
- scss: !!enableScss
319
+ overrides: getOverrides(options.vue)
301
320
  })
302
321
  );
303
322
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xiaohe01/stylelint-config",
3
3
  "type": "module",
4
- "version": "2.2.1",
4
+ "version": "2.3.0",
5
5
  "description": "🤚 Stylelint config preset for xiaohe",
6
6
  "author": "xiaohe0601 <xiaohe0601@outlook.com>",
7
7
  "license": "MIT",