@pengzhanbo/stylelint-config 1.3.3 → 1.3.4

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
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,15 +17,27 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
 
20
30
  // src/index.ts
21
31
  var src_exports = {};
22
32
  __export(src_exports, {
23
- default: () => src_default
33
+ default: () => src_default,
34
+ stylelintConfig: () => config_default
24
35
  });
25
36
  module.exports = __toCommonJS(src_exports);
37
+
38
+ // src/config.ts
26
39
  var import_local_pkg = require("local-pkg");
40
+ var import_utils = require("@pengzhanbo/utils");
27
41
 
28
42
  // src/globs.ts
29
43
  var JS_EXT = [
@@ -80,8 +94,126 @@ var GLOB_EXCLUDE = [
80
94
  "**/*Dockerfile"
81
95
  ];
82
96
 
83
- // src/config/order.ts
84
- var order_default = {
97
+ // src/rules/codeguide.ts
98
+ var codeguideRules = {
99
+ "codeguide/at-rule-name-case": "lower",
100
+ "codeguide/at-rule-name-newline-after": "always-multi-line",
101
+ "codeguide/at-rule-semicolon-newline-after": "always",
102
+ "codeguide/block-closing-brace-empty-line-before": "never",
103
+ "codeguide/block-closing-brace-newline-after": "always",
104
+ "codeguide/block-closing-brace-newline-before": "always",
105
+ "codeguide/block-closing-brace-space-after": "always-single-line",
106
+ "codeguide/block-closing-brace-space-before": "always-single-line",
107
+ "codeguide/block-opening-brace-newline-after": "always",
108
+ "codeguide/block-opening-brace-space-after": "always-single-line",
109
+ "codeguide/block-opening-brace-space-before": "always",
110
+ "codeguide/color-hex-case": "lower",
111
+ "codeguide/declaration-bang-space-after": "never",
112
+ "codeguide/declaration-bang-space-before": "always",
113
+ "codeguide/declaration-block-semicolon-newline-after": "always",
114
+ "codeguide/declaration-block-semicolon-newline-before": "never-multi-line",
115
+ "codeguide/declaration-block-semicolon-space-after": "always-single-line",
116
+ "codeguide/declaration-block-semicolon-space-before": "never",
117
+ "codeguide/declaration-block-trailing-semicolon": "always",
118
+ "codeguide/declaration-colon-newline-after": "always-multi-line",
119
+ "codeguide/declaration-colon-space-after": "always-single-line",
120
+ "codeguide/declaration-colon-space-before": "never",
121
+ "codeguide/function-comma-newline-after": "always-multi-line",
122
+ "codeguide/function-comma-newline-before": "never-multi-line",
123
+ "codeguide/function-comma-space-after": "always-single-line",
124
+ "codeguide/function-comma-space-before": "never",
125
+ "codeguide/function-max-empty-lines": 0,
126
+ "codeguide/function-parentheses-space-inside": "never-single-line",
127
+ "codeguide/function-whitespace-after": "always",
128
+ "codeguide/indentation": [2, { baseIndentLevel: 0 }],
129
+ "codeguide/max-empty-lines": 2,
130
+ "codeguide/media-feature-colon-space-after": "always",
131
+ "codeguide/media-feature-colon-space-before": "never",
132
+ "codeguide/media-feature-name-case": "lower",
133
+ "codeguide/media-feature-parentheses-space-inside": "never",
134
+ "codeguide/media-feature-range-operator-space-after": "always",
135
+ "codeguide/media-feature-range-operator-space-before": "always",
136
+ "codeguide/media-query-list-comma-newline-after": "always-multi-line",
137
+ "codeguide/media-query-list-comma-newline-before": "never-multi-line",
138
+ "codeguide/media-query-list-comma-space-after": "always-single-line",
139
+ "codeguide/media-query-list-comma-space-before": "never-single-line",
140
+ "codeguide/no-eol-whitespace": true,
141
+ "codeguide/no-extra-semicolons": true,
142
+ "codeguide/no-missing-end-of-source-newline": true,
143
+ "codeguide/number-leading-zero": "always",
144
+ "codeguide/number-no-trailing-zeros": true,
145
+ "codeguide/property-case": "lower",
146
+ "codeguide/selector-attribute-brackets-space-inside": "never",
147
+ "codeguide/selector-attribute-operator-space-after": "never",
148
+ "codeguide/selector-attribute-operator-space-before": "never",
149
+ "codeguide/selector-combinator-space-after": "always",
150
+ "codeguide/selector-combinator-space-before": "always",
151
+ "codeguide/selector-descendant-combinator-no-non-space": true,
152
+ "codeguide/selector-list-comma-newline-after": "always",
153
+ "codeguide/selector-list-comma-newline-before": "never-multi-line",
154
+ "codeguide/selector-list-comma-space-after": "always-single-line",
155
+ "codeguide/selector-list-comma-space-before": "never",
156
+ "codeguide/selector-max-empty-lines": 0,
157
+ "codeguide/selector-pseudo-class-case": "lower",
158
+ "codeguide/selector-pseudo-class-parentheses-space-inside": "never",
159
+ "codeguide/selector-pseudo-element-case": "lower",
160
+ "codeguide/string-quotes": "double",
161
+ "codeguide/unit-case": "lower",
162
+ "codeguide/value-list-comma-newline-after": "always-multi-line",
163
+ "codeguide/value-list-comma-newline-before": "never-multi-line",
164
+ "codeguide/value-list-comma-space-after": "always-single-line",
165
+ "codeguide/value-list-comma-space-before": "never",
166
+ "codeguide/value-list-max-empty-lines": 0
167
+ };
168
+
169
+ // src/rules/normal.ts
170
+ var normalRules = {
171
+ "at-rule-no-unknown": [
172
+ true,
173
+ {
174
+ ignoreAtRules: [
175
+ "tailwind",
176
+ "layer",
177
+ "apply",
178
+ "config",
179
+ "theme",
180
+ "screen"
181
+ ]
182
+ }
183
+ ],
184
+ "unit-no-unknown": [true, { ignoreUnits: ["rpx"], severity: "warning" }],
185
+ "color-function-notation": "legacy",
186
+ "alpha-value-notation": "number",
187
+ "selector-class-pattern": null,
188
+ "selector-pseudo-class-no-unknown": [
189
+ true,
190
+ {
191
+ ignorePseudoClasses: ["deep", "global"]
192
+ }
193
+ ],
194
+ "no-duplicate-selectors": null
195
+ };
196
+
197
+ // src/rules/order.ts
198
+ var orderRules = {
199
+ "order/order": [
200
+ [
201
+ "dollar-variables",
202
+ "custom-properties",
203
+ "at-rules",
204
+ "declarations",
205
+ {
206
+ type: "at-rule",
207
+ name: "supports"
208
+ },
209
+ {
210
+ type: "at-rule",
211
+ name: "media"
212
+ },
213
+ "rules"
214
+ ],
215
+ { severity: "warning" }
216
+ ],
85
217
  "order/properties-order": [
86
218
  {
87
219
  /**
@@ -511,119 +643,56 @@ var order_default = {
511
643
  ]
512
644
  };
513
645
 
514
- // src/config/codeguide.ts
515
- var codeguide_default = {
516
- "codeguide/at-rule-name-case": "lower",
517
- "codeguide/at-rule-name-newline-after": "always-multi-line",
518
- "codeguide/at-rule-semicolon-newline-after": "always",
519
- "codeguide/block-closing-brace-empty-line-before": "never",
520
- "codeguide/block-closing-brace-newline-after": "always",
521
- "codeguide/block-closing-brace-newline-before": "always",
522
- "codeguide/block-closing-brace-space-after": "always-single-line",
523
- "codeguide/block-closing-brace-space-before": "always-single-line",
524
- "codeguide/block-opening-brace-newline-after": "always",
525
- "codeguide/block-opening-brace-space-after": "always-single-line",
526
- "codeguide/block-opening-brace-space-before": "always",
527
- "codeguide/color-hex-case": "lower",
528
- "codeguide/declaration-bang-space-after": "never",
529
- "codeguide/declaration-bang-space-before": "always",
530
- "codeguide/declaration-block-semicolon-newline-after": "always",
531
- "codeguide/declaration-block-semicolon-newline-before": "never-multi-line",
532
- "codeguide/declaration-block-semicolon-space-after": "always-single-line",
533
- "codeguide/declaration-block-semicolon-space-before": "never",
534
- "codeguide/declaration-block-trailing-semicolon": "always",
535
- "codeguide/declaration-colon-newline-after": "always-multi-line",
536
- "codeguide/declaration-colon-space-after": "always-single-line",
537
- "codeguide/declaration-colon-space-before": "never",
538
- "codeguide/function-comma-newline-after": "always-multi-line",
539
- "codeguide/function-comma-newline-before": "never-multi-line",
540
- "codeguide/function-comma-space-after": "always-single-line",
541
- "codeguide/function-comma-space-before": "never",
542
- "codeguide/function-max-empty-lines": 0,
543
- "codeguide/function-parentheses-space-inside": "never-single-line",
544
- "codeguide/function-whitespace-after": "always",
545
- "codeguide/indentation": [2, { baseIndentLevel: 0 }],
546
- "codeguide/max-empty-lines": 2,
547
- "codeguide/media-feature-colon-space-after": "always",
548
- "codeguide/media-feature-colon-space-before": "never",
549
- "codeguide/media-feature-name-case": "lower",
550
- "codeguide/media-feature-parentheses-space-inside": "never",
551
- "codeguide/media-feature-range-operator-space-after": "always",
552
- "codeguide/media-feature-range-operator-space-before": "always",
553
- "codeguide/media-query-list-comma-newline-after": "always-multi-line",
554
- "codeguide/media-query-list-comma-newline-before": "never-multi-line",
555
- "codeguide/media-query-list-comma-space-after": "always-single-line",
556
- "codeguide/media-query-list-comma-space-before": "never-single-line",
557
- "codeguide/no-eol-whitespace": true,
558
- "codeguide/no-extra-semicolons": true,
559
- "codeguide/no-missing-end-of-source-newline": true,
560
- "codeguide/number-leading-zero": "always",
561
- "codeguide/number-no-trailing-zeros": true,
562
- "codeguide/property-case": "lower",
563
- "codeguide/selector-attribute-brackets-space-inside": "never",
564
- "codeguide/selector-attribute-operator-space-after": "never",
565
- "codeguide/selector-attribute-operator-space-before": "never",
566
- "codeguide/selector-combinator-space-after": "always",
567
- "codeguide/selector-combinator-space-before": "always",
568
- "codeguide/selector-descendant-combinator-no-non-space": true,
569
- "codeguide/selector-list-comma-newline-after": "always",
570
- "codeguide/selector-list-comma-newline-before": "never-multi-line",
571
- "codeguide/selector-list-comma-space-after": "always-single-line",
572
- "codeguide/selector-list-comma-space-before": "never",
573
- "codeguide/selector-max-empty-lines": 0,
574
- "codeguide/selector-pseudo-class-case": "lower",
575
- "codeguide/selector-pseudo-class-parentheses-space-inside": "never",
576
- "codeguide/selector-pseudo-element-case": "lower",
577
- "codeguide/string-quotes": "double",
578
- "codeguide/unit-case": "lower",
579
- "codeguide/value-list-comma-newline-after": "always-multi-line",
580
- "codeguide/value-list-comma-newline-before": "never-multi-line",
581
- "codeguide/value-list-comma-space-after": "always-single-line",
582
- "codeguide/value-list-comma-space-before": "never",
583
- "codeguide/value-list-max-empty-lines": 0
584
- };
585
-
586
- // src/index.ts
646
+ // src/config.ts
587
647
  var CSS_IN_JS = false;
588
648
  var IGNORES = !CSS_IN_JS ? JS_EXT.map((ext) => `**/${ext}`) : [];
589
- var src_default = {
590
- extends: ["stylelint-config-standard", "stylelint-config-html"],
591
- plugins: ["stylelint-order", "stylelint-codeguide"],
592
- ignoreFiles: [
593
- ...GLOB_EXCLUDE,
594
- ...IGNORES
595
- ],
596
- overrides: [
597
- (0, import_local_pkg.isPackageExists)("sass") && {
649
+ function stylelintConfig(options = {}, userConfig = {}) {
650
+ const { order = true, codeguide = true, scss = true, overrides = {}, rules = {} } = options;
651
+ const config = { ...userConfig };
652
+ config.extends = ["stylelint-config-standard", "stylelint-config-html", ...(0, import_utils.toArray)(config.extends)];
653
+ config.plugins = ["stylelint-order", "stylelint-codeguide", ...(0, import_utils.toArray)(config.plugins)];
654
+ config.ignoreFiles = [...GLOB_EXCLUDE, ...IGNORES, ...(0, import_utils.toArray)(config.ignoreFiles)];
655
+ config.overrides = config.overrides ?? [];
656
+ config.rules = { ...normalRules, ...config.rules || {} };
657
+ if (order) {
658
+ ;
659
+ config.plugins.push("stylelint-order");
660
+ config.rules = {
661
+ ...config.rules,
662
+ ...orderRules
663
+ };
664
+ }
665
+ if (codeguide) {
666
+ ;
667
+ config.plugins.push("stylelint-codeguide");
668
+ config.rules = {
669
+ ...config.rules,
670
+ ...codeguideRules
671
+ };
672
+ }
673
+ if ((0, import_local_pkg.isPackageExists)("sass") && scss) {
674
+ config.overrides?.push({
598
675
  files: ["*.scss", "**/*.scss"],
599
- extends: ["stylelint-config-standard-scss"]
600
- }
601
- ].filter(Boolean),
602
- rules: {
603
- "at-rule-no-unknown": [
604
- true,
605
- {
606
- ignoreAtRules: [
607
- "tailwind",
608
- "layer",
609
- "apply",
610
- "config",
611
- "theme",
612
- "screen"
613
- ]
614
- }
615
- ],
616
- "unit-no-unknown": [true, { ignoreUnits: ["rpx"] }],
617
- "color-function-notation": "legacy",
618
- "alpha-value-notation": "number",
619
- "selector-class-pattern": null,
620
- "selector-pseudo-class-no-unknown": [
621
- true,
622
- {
623
- ignorePseudoClasses: ["deep", "global"]
624
- }
625
- ],
626
- ...order_default,
627
- ...codeguide_default
676
+ extends: ["stylelint-config-standard-scss"],
677
+ rules: overrides.scss
678
+ });
628
679
  }
629
- };
680
+ if (rules) {
681
+ config.rules = {
682
+ ...config.rules,
683
+ ...rules
684
+ };
685
+ }
686
+ return config;
687
+ }
688
+ var config_default = stylelintConfig;
689
+
690
+ // src/define-config.ts
691
+ var import_stylelint_define_config = __toESM(require("stylelint-define-config"), 1);
692
+
693
+ // src/index.ts
694
+ var src_default = config_default();
695
+ // Annotate the CommonJS export names for ESM import in node:
696
+ 0 && (module.exports = {
697
+ stylelintConfig
698
+ });
package/dist/index.d.cts CHANGED
@@ -1,5 +1,36 @@
1
- import { StylelintConfig } from 'stylelint-define-config';
1
+ import * as defineConfig from 'stylelint-define-config';
2
+ import { Rules, StylelintConfig } from 'stylelint-define-config';
3
+ export { StylelintConfig } from 'stylelint-define-config';
4
+ import { RuleOptions, Plugins } from '@stylelint-types/stylelint-codeguide/types';
5
+ export { RuleOptions as CodeguideRuleOptions } from '@stylelint-types/stylelint-codeguide/types';
6
+ import { RuleOptions as RuleOptions$1, Plugins as Plugins$1, Extends } from '@stylelint-types/stylelint-order/types';
7
+ export { RuleOptions as OrderRuleOptions } from '@stylelint-types/stylelint-order/types';
8
+ import { RuleOptions as RuleOptions$2, Plugins as Plugins$2, Extends as Extends$1, Syntax } from '@stylelint-types/stylelint-scss/types';
9
+ export { RuleOptions as SCSSRuleOptions } from '@stylelint-types/stylelint-scss/types';
2
10
 
3
- declare const _default: StylelintConfig;
11
+ declare module 'stylelint-define-config' {
12
+ interface CustomRuleOptions extends RuleOptions, RuleOptions$1, RuleOptions$2 {
13
+ }
14
+ interface CustomPlugins extends Plugins, Plugins$1, Plugins$2 {
15
+ }
16
+ interface CustomExtends extends Extends, Extends$1 {
17
+ }
18
+ interface CustomSyntax extends Syntax {
19
+ }
20
+ }
21
+ type StylelintRules = Partial<Rules>;
4
22
 
5
- export { _default as default };
23
+ interface Options {
24
+ order?: boolean;
25
+ codeguide?: boolean;
26
+ scss?: boolean;
27
+ overrides?: {
28
+ scss?: Partial<RuleOptions$2>;
29
+ };
30
+ rules?: StylelintRules;
31
+ }
32
+ declare function stylelintConfig(options?: Options, userConfig?: StylelintConfig): StylelintConfig;
33
+
34
+ declare const _default: defineConfig.StylelintConfig;
35
+
36
+ export { type StylelintRules, _default as default, stylelintConfig };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,36 @@
1
- import { StylelintConfig } from 'stylelint-define-config';
1
+ import * as defineConfig from 'stylelint-define-config';
2
+ import { Rules, StylelintConfig } from 'stylelint-define-config';
3
+ export { StylelintConfig } from 'stylelint-define-config';
4
+ import { RuleOptions, Plugins } from '@stylelint-types/stylelint-codeguide/types';
5
+ export { RuleOptions as CodeguideRuleOptions } from '@stylelint-types/stylelint-codeguide/types';
6
+ import { RuleOptions as RuleOptions$1, Plugins as Plugins$1, Extends } from '@stylelint-types/stylelint-order/types';
7
+ export { RuleOptions as OrderRuleOptions } from '@stylelint-types/stylelint-order/types';
8
+ import { RuleOptions as RuleOptions$2, Plugins as Plugins$2, Extends as Extends$1, Syntax } from '@stylelint-types/stylelint-scss/types';
9
+ export { RuleOptions as SCSSRuleOptions } from '@stylelint-types/stylelint-scss/types';
2
10
 
3
- declare const _default: StylelintConfig;
11
+ declare module 'stylelint-define-config' {
12
+ interface CustomRuleOptions extends RuleOptions, RuleOptions$1, RuleOptions$2 {
13
+ }
14
+ interface CustomPlugins extends Plugins, Plugins$1, Plugins$2 {
15
+ }
16
+ interface CustomExtends extends Extends, Extends$1 {
17
+ }
18
+ interface CustomSyntax extends Syntax {
19
+ }
20
+ }
21
+ type StylelintRules = Partial<Rules>;
4
22
 
5
- export { _default as default };
23
+ interface Options {
24
+ order?: boolean;
25
+ codeguide?: boolean;
26
+ scss?: boolean;
27
+ overrides?: {
28
+ scss?: Partial<RuleOptions$2>;
29
+ };
30
+ rules?: StylelintRules;
31
+ }
32
+ declare function stylelintConfig(options?: Options, userConfig?: StylelintConfig): StylelintConfig;
33
+
34
+ declare const _default: defineConfig.StylelintConfig;
35
+
36
+ export { type StylelintRules, _default as default, stylelintConfig };
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
- // src/index.ts
1
+ // src/config.ts
2
2
  import { isPackageExists } from "local-pkg";
3
+ import { toArray } from "@pengzhanbo/utils";
3
4
 
4
5
  // src/globs.ts
5
6
  var JS_EXT = [
@@ -56,8 +57,126 @@ var GLOB_EXCLUDE = [
56
57
  "**/*Dockerfile"
57
58
  ];
58
59
 
59
- // src/config/order.ts
60
- var order_default = {
60
+ // src/rules/codeguide.ts
61
+ var codeguideRules = {
62
+ "codeguide/at-rule-name-case": "lower",
63
+ "codeguide/at-rule-name-newline-after": "always-multi-line",
64
+ "codeguide/at-rule-semicolon-newline-after": "always",
65
+ "codeguide/block-closing-brace-empty-line-before": "never",
66
+ "codeguide/block-closing-brace-newline-after": "always",
67
+ "codeguide/block-closing-brace-newline-before": "always",
68
+ "codeguide/block-closing-brace-space-after": "always-single-line",
69
+ "codeguide/block-closing-brace-space-before": "always-single-line",
70
+ "codeguide/block-opening-brace-newline-after": "always",
71
+ "codeguide/block-opening-brace-space-after": "always-single-line",
72
+ "codeguide/block-opening-brace-space-before": "always",
73
+ "codeguide/color-hex-case": "lower",
74
+ "codeguide/declaration-bang-space-after": "never",
75
+ "codeguide/declaration-bang-space-before": "always",
76
+ "codeguide/declaration-block-semicolon-newline-after": "always",
77
+ "codeguide/declaration-block-semicolon-newline-before": "never-multi-line",
78
+ "codeguide/declaration-block-semicolon-space-after": "always-single-line",
79
+ "codeguide/declaration-block-semicolon-space-before": "never",
80
+ "codeguide/declaration-block-trailing-semicolon": "always",
81
+ "codeguide/declaration-colon-newline-after": "always-multi-line",
82
+ "codeguide/declaration-colon-space-after": "always-single-line",
83
+ "codeguide/declaration-colon-space-before": "never",
84
+ "codeguide/function-comma-newline-after": "always-multi-line",
85
+ "codeguide/function-comma-newline-before": "never-multi-line",
86
+ "codeguide/function-comma-space-after": "always-single-line",
87
+ "codeguide/function-comma-space-before": "never",
88
+ "codeguide/function-max-empty-lines": 0,
89
+ "codeguide/function-parentheses-space-inside": "never-single-line",
90
+ "codeguide/function-whitespace-after": "always",
91
+ "codeguide/indentation": [2, { baseIndentLevel: 0 }],
92
+ "codeguide/max-empty-lines": 2,
93
+ "codeguide/media-feature-colon-space-after": "always",
94
+ "codeguide/media-feature-colon-space-before": "never",
95
+ "codeguide/media-feature-name-case": "lower",
96
+ "codeguide/media-feature-parentheses-space-inside": "never",
97
+ "codeguide/media-feature-range-operator-space-after": "always",
98
+ "codeguide/media-feature-range-operator-space-before": "always",
99
+ "codeguide/media-query-list-comma-newline-after": "always-multi-line",
100
+ "codeguide/media-query-list-comma-newline-before": "never-multi-line",
101
+ "codeguide/media-query-list-comma-space-after": "always-single-line",
102
+ "codeguide/media-query-list-comma-space-before": "never-single-line",
103
+ "codeguide/no-eol-whitespace": true,
104
+ "codeguide/no-extra-semicolons": true,
105
+ "codeguide/no-missing-end-of-source-newline": true,
106
+ "codeguide/number-leading-zero": "always",
107
+ "codeguide/number-no-trailing-zeros": true,
108
+ "codeguide/property-case": "lower",
109
+ "codeguide/selector-attribute-brackets-space-inside": "never",
110
+ "codeguide/selector-attribute-operator-space-after": "never",
111
+ "codeguide/selector-attribute-operator-space-before": "never",
112
+ "codeguide/selector-combinator-space-after": "always",
113
+ "codeguide/selector-combinator-space-before": "always",
114
+ "codeguide/selector-descendant-combinator-no-non-space": true,
115
+ "codeguide/selector-list-comma-newline-after": "always",
116
+ "codeguide/selector-list-comma-newline-before": "never-multi-line",
117
+ "codeguide/selector-list-comma-space-after": "always-single-line",
118
+ "codeguide/selector-list-comma-space-before": "never",
119
+ "codeguide/selector-max-empty-lines": 0,
120
+ "codeguide/selector-pseudo-class-case": "lower",
121
+ "codeguide/selector-pseudo-class-parentheses-space-inside": "never",
122
+ "codeguide/selector-pseudo-element-case": "lower",
123
+ "codeguide/string-quotes": "double",
124
+ "codeguide/unit-case": "lower",
125
+ "codeguide/value-list-comma-newline-after": "always-multi-line",
126
+ "codeguide/value-list-comma-newline-before": "never-multi-line",
127
+ "codeguide/value-list-comma-space-after": "always-single-line",
128
+ "codeguide/value-list-comma-space-before": "never",
129
+ "codeguide/value-list-max-empty-lines": 0
130
+ };
131
+
132
+ // src/rules/normal.ts
133
+ var normalRules = {
134
+ "at-rule-no-unknown": [
135
+ true,
136
+ {
137
+ ignoreAtRules: [
138
+ "tailwind",
139
+ "layer",
140
+ "apply",
141
+ "config",
142
+ "theme",
143
+ "screen"
144
+ ]
145
+ }
146
+ ],
147
+ "unit-no-unknown": [true, { ignoreUnits: ["rpx"], severity: "warning" }],
148
+ "color-function-notation": "legacy",
149
+ "alpha-value-notation": "number",
150
+ "selector-class-pattern": null,
151
+ "selector-pseudo-class-no-unknown": [
152
+ true,
153
+ {
154
+ ignorePseudoClasses: ["deep", "global"]
155
+ }
156
+ ],
157
+ "no-duplicate-selectors": null
158
+ };
159
+
160
+ // src/rules/order.ts
161
+ var orderRules = {
162
+ "order/order": [
163
+ [
164
+ "dollar-variables",
165
+ "custom-properties",
166
+ "at-rules",
167
+ "declarations",
168
+ {
169
+ type: "at-rule",
170
+ name: "supports"
171
+ },
172
+ {
173
+ type: "at-rule",
174
+ name: "media"
175
+ },
176
+ "rules"
177
+ ],
178
+ { severity: "warning" }
179
+ ],
61
180
  "order/properties-order": [
62
181
  {
63
182
  /**
@@ -487,122 +606,56 @@ var order_default = {
487
606
  ]
488
607
  };
489
608
 
490
- // src/config/codeguide.ts
491
- var codeguide_default = {
492
- "codeguide/at-rule-name-case": "lower",
493
- "codeguide/at-rule-name-newline-after": "always-multi-line",
494
- "codeguide/at-rule-semicolon-newline-after": "always",
495
- "codeguide/block-closing-brace-empty-line-before": "never",
496
- "codeguide/block-closing-brace-newline-after": "always",
497
- "codeguide/block-closing-brace-newline-before": "always",
498
- "codeguide/block-closing-brace-space-after": "always-single-line",
499
- "codeguide/block-closing-brace-space-before": "always-single-line",
500
- "codeguide/block-opening-brace-newline-after": "always",
501
- "codeguide/block-opening-brace-space-after": "always-single-line",
502
- "codeguide/block-opening-brace-space-before": "always",
503
- "codeguide/color-hex-case": "lower",
504
- "codeguide/declaration-bang-space-after": "never",
505
- "codeguide/declaration-bang-space-before": "always",
506
- "codeguide/declaration-block-semicolon-newline-after": "always",
507
- "codeguide/declaration-block-semicolon-newline-before": "never-multi-line",
508
- "codeguide/declaration-block-semicolon-space-after": "always-single-line",
509
- "codeguide/declaration-block-semicolon-space-before": "never",
510
- "codeguide/declaration-block-trailing-semicolon": "always",
511
- "codeguide/declaration-colon-newline-after": "always-multi-line",
512
- "codeguide/declaration-colon-space-after": "always-single-line",
513
- "codeguide/declaration-colon-space-before": "never",
514
- "codeguide/function-comma-newline-after": "always-multi-line",
515
- "codeguide/function-comma-newline-before": "never-multi-line",
516
- "codeguide/function-comma-space-after": "always-single-line",
517
- "codeguide/function-comma-space-before": "never",
518
- "codeguide/function-max-empty-lines": 0,
519
- "codeguide/function-parentheses-space-inside": "never-single-line",
520
- "codeguide/function-whitespace-after": "always",
521
- "codeguide/indentation": [2, { baseIndentLevel: 0 }],
522
- "codeguide/max-empty-lines": 2,
523
- "codeguide/media-feature-colon-space-after": "always",
524
- "codeguide/media-feature-colon-space-before": "never",
525
- "codeguide/media-feature-name-case": "lower",
526
- "codeguide/media-feature-parentheses-space-inside": "never",
527
- "codeguide/media-feature-range-operator-space-after": "always",
528
- "codeguide/media-feature-range-operator-space-before": "always",
529
- "codeguide/media-query-list-comma-newline-after": "always-multi-line",
530
- "codeguide/media-query-list-comma-newline-before": "never-multi-line",
531
- "codeguide/media-query-list-comma-space-after": "always-single-line",
532
- "codeguide/media-query-list-comma-space-before": "never-single-line",
533
- "codeguide/no-eol-whitespace": true,
534
- "codeguide/no-extra-semicolons": true,
535
- "codeguide/no-missing-end-of-source-newline": true,
536
- "codeguide/number-leading-zero": "always",
537
- "codeguide/number-no-trailing-zeros": true,
538
- "codeguide/property-case": "lower",
539
- "codeguide/selector-attribute-brackets-space-inside": "never",
540
- "codeguide/selector-attribute-operator-space-after": "never",
541
- "codeguide/selector-attribute-operator-space-before": "never",
542
- "codeguide/selector-combinator-space-after": "always",
543
- "codeguide/selector-combinator-space-before": "always",
544
- "codeguide/selector-descendant-combinator-no-non-space": true,
545
- "codeguide/selector-list-comma-newline-after": "always",
546
- "codeguide/selector-list-comma-newline-before": "never-multi-line",
547
- "codeguide/selector-list-comma-space-after": "always-single-line",
548
- "codeguide/selector-list-comma-space-before": "never",
549
- "codeguide/selector-max-empty-lines": 0,
550
- "codeguide/selector-pseudo-class-case": "lower",
551
- "codeguide/selector-pseudo-class-parentheses-space-inside": "never",
552
- "codeguide/selector-pseudo-element-case": "lower",
553
- "codeguide/string-quotes": "double",
554
- "codeguide/unit-case": "lower",
555
- "codeguide/value-list-comma-newline-after": "always-multi-line",
556
- "codeguide/value-list-comma-newline-before": "never-multi-line",
557
- "codeguide/value-list-comma-space-after": "always-single-line",
558
- "codeguide/value-list-comma-space-before": "never",
559
- "codeguide/value-list-max-empty-lines": 0
560
- };
561
-
562
- // src/index.ts
609
+ // src/config.ts
563
610
  var CSS_IN_JS = false;
564
611
  var IGNORES = !CSS_IN_JS ? JS_EXT.map((ext) => `**/${ext}`) : [];
565
- var src_default = {
566
- extends: ["stylelint-config-standard", "stylelint-config-html"],
567
- plugins: ["stylelint-order", "stylelint-codeguide"],
568
- ignoreFiles: [
569
- ...GLOB_EXCLUDE,
570
- ...IGNORES
571
- ],
572
- overrides: [
573
- isPackageExists("sass") && {
612
+ function stylelintConfig(options = {}, userConfig = {}) {
613
+ const { order = true, codeguide = true, scss = true, overrides = {}, rules = {} } = options;
614
+ const config = { ...userConfig };
615
+ config.extends = ["stylelint-config-standard", "stylelint-config-html", ...toArray(config.extends)];
616
+ config.plugins = ["stylelint-order", "stylelint-codeguide", ...toArray(config.plugins)];
617
+ config.ignoreFiles = [...GLOB_EXCLUDE, ...IGNORES, ...toArray(config.ignoreFiles)];
618
+ config.overrides = config.overrides ?? [];
619
+ config.rules = { ...normalRules, ...config.rules || {} };
620
+ if (order) {
621
+ ;
622
+ config.plugins.push("stylelint-order");
623
+ config.rules = {
624
+ ...config.rules,
625
+ ...orderRules
626
+ };
627
+ }
628
+ if (codeguide) {
629
+ ;
630
+ config.plugins.push("stylelint-codeguide");
631
+ config.rules = {
632
+ ...config.rules,
633
+ ...codeguideRules
634
+ };
635
+ }
636
+ if (isPackageExists("sass") && scss) {
637
+ config.overrides?.push({
574
638
  files: ["*.scss", "**/*.scss"],
575
- extends: ["stylelint-config-standard-scss"]
576
- }
577
- ].filter(Boolean),
578
- rules: {
579
- "at-rule-no-unknown": [
580
- true,
581
- {
582
- ignoreAtRules: [
583
- "tailwind",
584
- "layer",
585
- "apply",
586
- "config",
587
- "theme",
588
- "screen"
589
- ]
590
- }
591
- ],
592
- "unit-no-unknown": [true, { ignoreUnits: ["rpx"] }],
593
- "color-function-notation": "legacy",
594
- "alpha-value-notation": "number",
595
- "selector-class-pattern": null,
596
- "selector-pseudo-class-no-unknown": [
597
- true,
598
- {
599
- ignorePseudoClasses: ["deep", "global"]
600
- }
601
- ],
602
- ...order_default,
603
- ...codeguide_default
639
+ extends: ["stylelint-config-standard-scss"],
640
+ rules: overrides.scss
641
+ });
604
642
  }
605
- };
643
+ if (rules) {
644
+ config.rules = {
645
+ ...config.rules,
646
+ ...rules
647
+ };
648
+ }
649
+ return config;
650
+ }
651
+ var config_default = stylelintConfig;
652
+
653
+ // src/define-config.ts
654
+ import defineConfig from "stylelint-define-config";
655
+
656
+ // src/index.ts
657
+ var src_default = config_default();
606
658
  export {
607
- src_default as default
659
+ src_default as default,
660
+ config_default as stylelintConfig
608
661
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pengzhanbo/stylelint-config",
3
3
  "type": "module",
4
- "version": "1.3.3",
4
+ "version": "1.3.4",
5
5
  "author": "pengzhanbo <q942450674@outlook.com> (https://github/pengzhanbo/)",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/pengzhanbo/configs#readme",
@@ -26,15 +26,20 @@
26
26
  },
27
27
  "./package.json": "./package.json"
28
28
  },
29
- "main": "dist/index.js",
29
+ "main": "dist/index.cjs",
30
+ "module": "dist/index.js",
30
31
  "types": "dist/index.d.ts",
31
32
  "files": [
32
33
  "dist"
33
34
  ],
34
35
  "peerDependencies": {
35
- "stylelint": ">=15.0.0"
36
+ "stylelint": ">=16.0.0"
36
37
  },
37
38
  "dependencies": {
39
+ "@pengzhanbo/utils": "^1.1.1",
40
+ "@stylelint-types/stylelint-codeguide": "^1.0.1",
41
+ "@stylelint-types/stylelint-order": "^6.0.4",
42
+ "@stylelint-types/stylelint-scss": "^6.0.0",
38
43
  "local-pkg": "^0.5.0",
39
44
  "postcss": "^8.4.32",
40
45
  "postcss-html": "^1.5.0",
@@ -42,14 +47,11 @@
42
47
  "stylelint-config-html": "^1.1.0",
43
48
  "stylelint-config-standard": "^35.0.0",
44
49
  "stylelint-config-standard-scss": "^12.0.0",
50
+ "stylelint-define-config": "^1.1.0",
45
51
  "stylelint-order": "^6.0.4"
46
52
  },
47
53
  "devDependencies": {
48
- "@stylelint-types/stylelint-codeguide": "^1.0.1",
49
- "@stylelint-types/stylelint-order": "^6.0.4",
50
- "@stylelint-types/stylelint-scss": "^6.0.0",
51
54
  "stylelint": "^16.0.2",
52
- "stylelint-define-config": "^1.0.1",
53
55
  "tsup": "^8.0.1"
54
56
  },
55
57
  "scripts": {