@culur/config-stylelint 1.0.5 → 1.1.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/CHANGELOG.md +6 -0
- package/README.md +18 -0
- package/dist/chunk-25GAG7VZ.cjs +14 -0
- package/dist/chunk-25GAG7VZ.cjs.map +1 -0
- package/dist/chunk-3EXGA24H.cjs +14 -0
- package/dist/chunk-3EXGA24H.cjs.map +1 -0
- package/dist/chunk-5B6KVSBM.cjs +21 -0
- package/dist/chunk-5B6KVSBM.cjs.map +1 -0
- package/dist/chunk-6KBIBHQC.js +17 -0
- package/dist/chunk-6KBIBHQC.js.map +1 -0
- package/dist/chunk-6TFCLJEL.js +12 -0
- package/dist/chunk-6TFCLJEL.js.map +1 -0
- package/dist/chunk-7GVP73HJ.js +12 -0
- package/dist/chunk-7GVP73HJ.js.map +1 -0
- package/dist/chunk-7HEUVQEH.cjs +14 -0
- package/dist/chunk-7HEUVQEH.cjs.map +1 -0
- package/dist/chunk-7MXAEVIH.js +12 -0
- package/dist/chunk-7MXAEVIH.js.map +1 -0
- package/dist/chunk-A7OLAKMM.cjs +15 -0
- package/dist/chunk-A7OLAKMM.cjs.map +1 -0
- package/dist/chunk-BUXFTQGN.js +12 -0
- package/dist/chunk-BUXFTQGN.js.map +1 -0
- package/dist/chunk-C27K4OM4.js +12 -0
- package/dist/chunk-C27K4OM4.js.map +1 -0
- package/dist/chunk-C64I73TJ.cjs +14 -0
- package/dist/chunk-C64I73TJ.cjs.map +1 -0
- package/dist/{chunk-FFVAQLBF.cjs → chunk-DCLB4SF5.cjs} +40 -38
- package/dist/chunk-DCLB4SF5.cjs.map +1 -0
- package/dist/chunk-DHBMZYEQ.js +13 -0
- package/dist/chunk-DHBMZYEQ.js.map +1 -0
- package/dist/chunk-IYMC4Z7C.js +12 -0
- package/dist/chunk-IYMC4Z7C.js.map +1 -0
- package/dist/chunk-OGKNAGXF.cjs +14 -0
- package/dist/chunk-OGKNAGXF.cjs.map +1 -0
- package/dist/chunk-OHYFOP6B.js +12 -0
- package/dist/chunk-OHYFOP6B.js.map +1 -0
- package/dist/{chunk-TRE3FPWU.js → chunk-RGZTVH2G.js} +40 -38
- package/dist/chunk-RGZTVH2G.js.map +1 -0
- package/dist/chunk-VILYU6GB.cjs +14 -0
- package/dist/chunk-VILYU6GB.cjs.map +1 -0
- package/dist/chunk-Y6Z2IDP7.cjs +14 -0
- package/dist/chunk-Y6Z2IDP7.cjs.map +1 -0
- package/dist/factory.cjs +3 -2
- package/dist/factory.d.cts +1 -1
- package/dist/factory.d.ts +1 -1
- package/dist/factory.js +2 -1
- package/dist/magic-string.es-KHKLXHFY.js +1273 -0
- package/dist/magic-string.es-KHKLXHFY.js.map +1 -0
- package/dist/magic-string.es-Y5KWYA2U.cjs +1279 -0
- package/dist/magic-string.es-Y5KWYA2U.cjs.map +1 -0
- package/dist/shareable-configs/auto.cjs +11 -0
- package/dist/shareable-configs/auto.cjs.map +1 -0
- package/dist/shareable-configs/auto.js +5 -0
- package/dist/shareable-configs/auto.js.map +1 -0
- package/dist/shareable-configs/none.cjs +11 -0
- package/dist/shareable-configs/none.cjs.map +1 -0
- package/dist/shareable-configs/none.d.cts +5 -0
- package/dist/shareable-configs/none.d.ts +5 -0
- package/dist/shareable-configs/none.js +5 -0
- package/dist/shareable-configs/none.js.map +1 -0
- package/dist/shareable-configs/sass-vue.cjs +11 -0
- package/dist/shareable-configs/sass-vue.cjs.map +1 -0
- package/dist/shareable-configs/sass-vue.d.cts +5 -0
- package/dist/shareable-configs/sass-vue.d.ts +5 -0
- package/dist/shareable-configs/sass-vue.js +5 -0
- package/dist/shareable-configs/sass-vue.js.map +1 -0
- package/dist/shareable-configs/sass.cjs +11 -0
- package/dist/shareable-configs/sass.cjs.map +1 -0
- package/dist/shareable-configs/sass.d.cts +5 -0
- package/dist/shareable-configs/sass.d.ts +5 -0
- package/dist/shareable-configs/sass.js +5 -0
- package/dist/shareable-configs/sass.js.map +1 -0
- package/dist/shareable-configs/shareable-configs.test.cjs +15579 -0
- package/dist/shareable-configs/shareable-configs.test.cjs.map +1 -0
- package/dist/shareable-configs/shareable-configs.test.d.cts +2 -0
- package/dist/shareable-configs/shareable-configs.test.d.ts +2 -0
- package/dist/shareable-configs/shareable-configs.test.js +15577 -0
- package/dist/shareable-configs/shareable-configs.test.js.map +1 -0
- package/dist/shareable-configs/tailwind-sass-vue.cjs +11 -0
- package/dist/shareable-configs/tailwind-sass-vue.cjs.map +1 -0
- package/dist/shareable-configs/tailwind-sass-vue.d.cts +5 -0
- package/dist/shareable-configs/tailwind-sass-vue.d.ts +5 -0
- package/dist/shareable-configs/tailwind-sass-vue.js +5 -0
- package/dist/shareable-configs/tailwind-sass-vue.js.map +1 -0
- package/dist/shareable-configs/tailwind-sass.cjs +11 -0
- package/dist/shareable-configs/tailwind-sass.cjs.map +1 -0
- package/dist/shareable-configs/tailwind-sass.d.cts +5 -0
- package/dist/shareable-configs/tailwind-sass.d.ts +5 -0
- package/dist/shareable-configs/tailwind-sass.js +5 -0
- package/dist/shareable-configs/tailwind-sass.js.map +1 -0
- package/dist/shareable-configs/tailwind.cjs +11 -0
- package/dist/shareable-configs/tailwind.cjs.map +1 -0
- package/dist/shareable-configs/tailwind.d.cts +5 -0
- package/dist/shareable-configs/tailwind.d.ts +5 -0
- package/dist/shareable-configs/tailwind.js +5 -0
- package/dist/shareable-configs/tailwind.js.map +1 -0
- package/dist/shareable-configs/vue.cjs +11 -0
- package/dist/shareable-configs/vue.cjs.map +1 -0
- package/dist/shareable-configs/vue.d.cts +5 -0
- package/dist/shareable-configs/vue.d.ts +5 -0
- package/dist/shareable-configs/vue.js +5 -0
- package/dist/shareable-configs/vue.js.map +1 -0
- package/package.json +15 -5
- package/src/__tests__/describe-lint-and-fix.ts +8 -17
- package/src/__tests__/describe-rule-or-config.ts +19 -28
- package/src/__tests__/index.ts +0 -4
- package/src/configs/css.test.ts +1 -2
- package/src/configs/css.ts +5 -4
- package/src/configs/scss.test.ts +1 -2
- package/src/configs/scss.ts +3 -2
- package/src/configs/shared.test.ts +1 -2
- package/src/configs/vue.test.ts +2 -4
- package/src/configs/vue.ts +3 -3
- package/src/factory.test.ts +27 -13
- package/src/factory.ts +5 -6
- package/src/rules/at-rule-no-unknown.test.ts +11 -15
- package/src/rules/at-rule-no-unknown.ts +7 -7
- package/src/rules/declaration-block-no-redundant-longhand-properties.test.ts +2 -7
- package/src/rules/dollar-variable-pattern.test.ts +8 -7
- package/src/rules/function-no-unknown.test.ts +6 -9
- package/src/rules/function-no-unknown.ts +7 -7
- package/src/rules/order.test.ts +8 -11
- package/src/rules/order.ts +8 -8
- package/src/shareable-configs/auto.ts +10 -0
- package/src/shareable-configs/none.ts +7 -0
- package/src/shareable-configs/sass-vue.ts +7 -0
- package/src/shareable-configs/sass.ts +7 -0
- package/src/shareable-configs/shareable-configs.test.ts +21 -0
- package/src/shareable-configs/tailwind-sass-vue.ts +7 -0
- package/src/shareable-configs/tailwind-sass.ts +7 -0
- package/src/shareable-configs/tailwind.ts +7 -0
- package/src/shareable-configs/vue.ts +7 -0
- package/dist/chunk-FFVAQLBF.cjs.map +0 -1
- package/dist/chunk-TRE3FPWU.js.map +0 -1
- package/dist/index.cjs +0 -10
- package/dist/index.cjs.map +0 -1
- package/dist/index.js +0 -8
- package/dist/index.js.map +0 -1
- package/src/__tests__/mock.ts +0 -34
- package/src/__tests__/spy-on-utils-packages.ts +0 -14
- package/src/index.test.ts +0 -9
- package/src/index.ts +0 -3
- /package/dist/{index.d.cts → shareable-configs/auto.d.cts} +0 -0
- /package/dist/{index.d.ts → shareable-configs/auto.d.ts} +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk7HEUVQEH_cjs = require('../chunk-7HEUVQEH.cjs');
|
|
4
|
+
require('../chunk-DCLB4SF5.cjs');
|
|
5
|
+
require('../chunk-5B6KVSBM.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
module.exports = chunk7HEUVQEH_cjs.tailwind_sass_vue_default;
|
|
10
|
+
//# sourceMappingURL=tailwind-sass-vue.cjs.map
|
|
11
|
+
//# sourceMappingURL=tailwind-sass-vue.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"tailwind-sass-vue.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"tailwind-sass-vue.js"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkOGKNAGXF_cjs = require('../chunk-OGKNAGXF.cjs');
|
|
4
|
+
require('../chunk-DCLB4SF5.cjs');
|
|
5
|
+
require('../chunk-5B6KVSBM.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
module.exports = chunkOGKNAGXF_cjs.tailwind_sass_default;
|
|
10
|
+
//# sourceMappingURL=tailwind-sass.cjs.map
|
|
11
|
+
//# sourceMappingURL=tailwind-sass.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"tailwind-sass.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"tailwind-sass.js"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk25GAG7VZ_cjs = require('../chunk-25GAG7VZ.cjs');
|
|
4
|
+
require('../chunk-DCLB4SF5.cjs');
|
|
5
|
+
require('../chunk-5B6KVSBM.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
module.exports = chunk25GAG7VZ_cjs.tailwind_default;
|
|
10
|
+
//# sourceMappingURL=tailwind.cjs.map
|
|
11
|
+
//# sourceMappingURL=tailwind.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"tailwind.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"tailwind.js"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkVILYU6GB_cjs = require('../chunk-VILYU6GB.cjs');
|
|
4
|
+
require('../chunk-DCLB4SF5.cjs');
|
|
5
|
+
require('../chunk-5B6KVSBM.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
module.exports = chunkVILYU6GB_cjs.vue_default;
|
|
10
|
+
//# sourceMappingURL=vue.cjs.map
|
|
11
|
+
//# sourceMappingURL=vue.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"vue.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"vue.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@culur/config-stylelint",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Culur's stylelint configuration",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -25,12 +25,22 @@
|
|
|
25
25
|
"exports": {
|
|
26
26
|
".": {
|
|
27
27
|
"import": {
|
|
28
|
-
"types": "./dist/
|
|
29
|
-
"default": "./dist/
|
|
28
|
+
"types": "./dist/shareable-configs/auto.d.ts",
|
|
29
|
+
"default": "./dist/shareable-configs/auto.js"
|
|
30
30
|
},
|
|
31
31
|
"require": {
|
|
32
|
-
"types": "./
|
|
33
|
-
"default": "./dist/
|
|
32
|
+
"types": "./shareable-configs/auto.d.cts",
|
|
33
|
+
"default": "./dist/shareable-configs/auto.cjs"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"./*": {
|
|
37
|
+
"import": {
|
|
38
|
+
"types": "./dist/shareable-configs/*.d.ts",
|
|
39
|
+
"default": "./dist/shareable-configs/*.js"
|
|
40
|
+
},
|
|
41
|
+
"require": {
|
|
42
|
+
"types": "./shareable-configs/*.d.cts",
|
|
43
|
+
"default": "./dist/shareable-configs/*.cjs"
|
|
34
44
|
}
|
|
35
45
|
},
|
|
36
46
|
"./factory": {
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
|
-
import type { Awaitable } from 'vitest';
|
|
3
|
-
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
4
2
|
import type { Config } from 'stylelint';
|
|
3
|
+
import type { Packages } from '@culur/utils-packages';
|
|
4
|
+
import { describe, expect, it } from 'vitest';
|
|
5
5
|
import stylelint from 'stylelint';
|
|
6
|
-
import type { UtilsPackages } from './mock';
|
|
7
|
-
import { spyOnUtilsPackages } from './spy-on-utils-packages';
|
|
8
6
|
|
|
9
7
|
type LintAndFixCase = {
|
|
10
8
|
code: string;
|
|
@@ -12,15 +10,14 @@ type LintAndFixCase = {
|
|
|
12
10
|
isError?: boolean;
|
|
13
11
|
ext?: 'css' | 'scss' | 'vue';
|
|
14
12
|
debug?: boolean;
|
|
15
|
-
} &
|
|
13
|
+
} & Partial<Packages>;
|
|
16
14
|
|
|
17
|
-
export function describeLintAndFix(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
testCases: LintAndFixCase[],
|
|
15
|
+
export function describeLintAndFix<TTestCase extends LintAndFixCase>(
|
|
16
|
+
getConfig: Config | ((testCase: TTestCase) => Promise<Config> | Config),
|
|
17
|
+
testCases: TTestCase[],
|
|
21
18
|
) {
|
|
22
19
|
const itName = [
|
|
23
|
-
...(['
|
|
20
|
+
...(['tailwind', 'sass', 'vue', 'isError'] as const) //
|
|
24
21
|
.filter(field => testCases.some(t => typeof t[field] === 'boolean')),
|
|
25
22
|
...(['code', 'fixedCode'] as const) //
|
|
26
23
|
.filter(field => testCases.some(t => typeof t[field] === 'string')),
|
|
@@ -29,15 +26,9 @@ export function describeLintAndFix(
|
|
|
29
26
|
.join(', ');
|
|
30
27
|
|
|
31
28
|
describe('test lint and fix', () => {
|
|
32
|
-
afterEach(() => {
|
|
33
|
-
vi.restoreAllMocks();
|
|
34
|
-
});
|
|
35
|
-
|
|
36
29
|
it.each(testCases)(itName, async testCase => {
|
|
37
|
-
spyOnUtilsPackages(utilsPackages, testCase);
|
|
38
|
-
|
|
39
30
|
const config =
|
|
40
|
-
typeof getConfig === 'function' ? await getConfig() : getConfig;
|
|
31
|
+
typeof getConfig === 'function' ? await getConfig(testCase) : getConfig;
|
|
41
32
|
|
|
42
33
|
const result = await stylelint.lint({
|
|
43
34
|
code: testCase.code,
|
|
@@ -1,69 +1,60 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { afterEach, describe, it, vi } from 'vitest';
|
|
1
|
+
import type { Packages } from '@culur/utils-packages';
|
|
3
2
|
import type { Config, ConfigRuleSettings } from 'stylelint';
|
|
4
|
-
import
|
|
5
|
-
import { hasValues, spyOnUtilsPackages } from './spy-on-utils-packages';
|
|
3
|
+
import { describe, it } from 'vitest';
|
|
6
4
|
import type {
|
|
7
5
|
ConfigRulePrimaryOption,
|
|
8
6
|
ConfigRuleSecondaryOptions,
|
|
9
7
|
} from '~/utils';
|
|
10
8
|
|
|
11
9
|
type Fn<
|
|
12
|
-
TTestCase extends UtilsPackages & object,
|
|
13
10
|
TRuleOrConfig extends
|
|
14
11
|
| ConfigRuleSettings<ConfigRulePrimaryOption, ConfigRuleSecondaryOptions>
|
|
15
12
|
| Config,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
options: UtilsPackages & TTestCase,
|
|
19
|
-
) => Promise<void> | void;
|
|
13
|
+
TTestCase extends Partial<Packages>,
|
|
14
|
+
> = (rule: TRuleOrConfig, testCase: TTestCase) => Promise<void> | void;
|
|
20
15
|
|
|
21
|
-
|
|
16
|
+
function describeRuleOrConfigFactory<
|
|
22
17
|
TBaseRuleOrConfig extends
|
|
23
18
|
| ConfigRuleSettings<ConfigRulePrimaryOption, ConfigRuleSecondaryOptions>
|
|
24
19
|
| Config,
|
|
25
20
|
>(describeName: string) {
|
|
26
|
-
function describeRuleOrConfig<
|
|
21
|
+
return function describeRuleOrConfig<
|
|
27
22
|
TRuleOrConfig extends TBaseRuleOrConfig,
|
|
28
|
-
TTestCase extends
|
|
23
|
+
TTestCase extends Partial<Packages>,
|
|
29
24
|
>(
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
getRuleOrConfig:
|
|
26
|
+
| TRuleOrConfig
|
|
27
|
+
| ((
|
|
28
|
+
packages: Partial<Packages>,
|
|
29
|
+
) => Promise<TRuleOrConfig> | TRuleOrConfig),
|
|
32
30
|
...args:
|
|
33
|
-
| [testCases: TTestCase[], fn: Fn<
|
|
34
|
-
| [fn: Fn<
|
|
31
|
+
| [testCases: TTestCase[], fn: Fn<TRuleOrConfig, TTestCase>]
|
|
32
|
+
| [fn: Fn<TRuleOrConfig, TTestCase>]
|
|
35
33
|
) {
|
|
36
34
|
const [testCases, fn] =
|
|
37
35
|
args.length === 2 //
|
|
38
36
|
? [...args]
|
|
39
|
-
: [[{} as
|
|
37
|
+
: [[{} as TTestCase], ...args];
|
|
40
38
|
|
|
41
39
|
const itName =
|
|
42
|
-
|
|
40
|
+
(['tailwind', 'sass', 'vue'] as const)
|
|
43
41
|
.filter(field => testCases.some(t => typeof t[field] === 'boolean'))
|
|
44
42
|
.map(field => `${field} = $${field}`)
|
|
45
43
|
.join(', ') || 'default';
|
|
46
44
|
|
|
47
45
|
describe(describeName, () => {
|
|
48
|
-
afterEach(() => {
|
|
49
|
-
vi.restoreAllMocks();
|
|
50
|
-
});
|
|
51
|
-
|
|
52
46
|
it.each(testCases)(itName, async testCase => {
|
|
53
|
-
spyOnUtilsPackages(utilsPackages, testCase);
|
|
54
|
-
|
|
55
47
|
const ruleOrConfig =
|
|
56
48
|
typeof getRuleOrConfig === 'function'
|
|
57
|
-
? await getRuleOrConfig()
|
|
49
|
+
? await getRuleOrConfig(testCase)
|
|
58
50
|
: getRuleOrConfig;
|
|
59
51
|
|
|
60
52
|
fn(ruleOrConfig, testCase);
|
|
61
53
|
});
|
|
62
54
|
});
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return describeRuleOrConfig;
|
|
55
|
+
};
|
|
66
56
|
}
|
|
57
|
+
|
|
67
58
|
export const describeConfig = describeRuleOrConfigFactory<Config>('config');
|
|
68
59
|
export const describeRule = describeRuleOrConfigFactory<
|
|
69
60
|
ConfigRuleSettings<
|
package/src/__tests__/index.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
export * from './dedent';
|
|
2
2
|
export * from './describe-lint-and-fix';
|
|
3
3
|
export * from './describe-rule-or-config';
|
|
4
|
-
// export * from './mock';
|
|
5
|
-
export * from './spy-on-utils-packages';
|
|
6
4
|
export * from './syntax';
|
|
7
|
-
// export * from './test-lint-and-fix';
|
|
8
|
-
// export * from './test-rule-or-config-value';
|
package/src/configs/css.test.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { assert } from 'vitest';
|
|
2
|
-
import * as utilsPackages from '@culur/utils-packages';
|
|
3
2
|
import { configCss } from './css';
|
|
4
3
|
import { describeConfig } from '~/__tests__';
|
|
5
4
|
|
|
6
|
-
describeConfig(
|
|
5
|
+
describeConfig(configCss, config => {
|
|
7
6
|
assert(Array.isArray(config.extends));
|
|
8
7
|
assert(Array.isArray(config.plugins));
|
|
9
8
|
});
|
package/src/configs/css.ts
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
+
import type { Packages } from '@culur/utils-packages';
|
|
1
2
|
import type { Config } from 'stylelint';
|
|
2
3
|
import { atRuleNoUnknownCSS } from '~/rules/at-rule-no-unknown';
|
|
3
4
|
import { declarationBlockNoRedundantLonghandProperties } from '~/rules/declaration-block-no-redundant-longhand-properties';
|
|
4
5
|
import { functionNoUnknown } from '~/rules/function-no-unknown';
|
|
5
6
|
import { order } from '~/rules/order';
|
|
6
7
|
|
|
7
|
-
export const configCss = (): Config => ({
|
|
8
|
+
export const configCss = (packages: Partial<Packages>): Config => ({
|
|
8
9
|
extends: ['stylelint-config-standard', 'stylelint-config-clean-order'],
|
|
9
10
|
plugins: ['stylelint-order', 'stylelint-selector-bem-pattern'],
|
|
10
11
|
rules: {
|
|
11
|
-
...atRuleNoUnknownCSS(),
|
|
12
|
+
...atRuleNoUnknownCSS(packages),
|
|
12
13
|
...declarationBlockNoRedundantLonghandProperties,
|
|
13
|
-
...functionNoUnknown(),
|
|
14
|
-
...order(),
|
|
14
|
+
...functionNoUnknown(packages),
|
|
15
|
+
...order(packages),
|
|
15
16
|
},
|
|
16
17
|
});
|
package/src/configs/scss.test.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import * as utilsPackages from '@culur/utils-packages';
|
|
2
1
|
import { assert } from 'vitest';
|
|
3
2
|
import { configScss } from './scss';
|
|
4
3
|
import { describeConfig } from '~/__tests__';
|
|
5
4
|
|
|
6
|
-
describeConfig(
|
|
5
|
+
describeConfig(configScss, config => {
|
|
7
6
|
assert(Array.isArray(config.extends));
|
|
8
7
|
});
|
package/src/configs/scss.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import type { Packages } from '@culur/utils-packages';
|
|
1
2
|
import type { Config } from 'stylelint';
|
|
2
3
|
import { atRuleNoUnknownSCSS } from '~/rules/at-rule-no-unknown';
|
|
3
4
|
import { dollarVariablePatternSCSS } from '~/rules/dollar-variable-pattern';
|
|
4
5
|
|
|
5
|
-
export const configScss = (): Config => ({
|
|
6
|
+
export const configScss = (packages: Partial<Packages>): Config => ({
|
|
6
7
|
extends: ['stylelint-config-standard-scss'],
|
|
7
8
|
rules: {
|
|
8
|
-
...atRuleNoUnknownSCSS(),
|
|
9
|
+
...atRuleNoUnknownSCSS(packages),
|
|
9
10
|
...dollarVariablePatternSCSS,
|
|
10
11
|
},
|
|
11
12
|
});
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { assert } from 'vitest';
|
|
2
|
-
import * as utilsPackages from '@culur/utils-packages';
|
|
3
2
|
import { configShared } from './shared';
|
|
4
3
|
import { describeConfig } from '~/__tests__';
|
|
5
4
|
|
|
6
|
-
describeConfig(
|
|
5
|
+
describeConfig(configShared, config => {
|
|
7
6
|
assert(Array.isArray(config.extends));
|
|
8
7
|
});
|
package/src/configs/vue.test.ts
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { assert } from 'vitest';
|
|
2
|
-
import * as utilsPackages from '@culur/utils-packages';
|
|
3
2
|
import { configVue } from './vue';
|
|
4
3
|
import { describeConfig } from '~/__tests__';
|
|
5
4
|
|
|
6
5
|
describeConfig(
|
|
7
|
-
utilsPackages,
|
|
8
6
|
configVue,
|
|
9
|
-
[{
|
|
7
|
+
[{ sass: true }, { sass: false }],
|
|
10
8
|
(config, testCase) => {
|
|
11
9
|
assert(Array.isArray(config.extends));
|
|
12
10
|
assert(Array.isArray(config.extends));
|
|
13
11
|
config.extends.includes(
|
|
14
|
-
testCase.
|
|
12
|
+
testCase.sass
|
|
15
13
|
? 'stylelint-config-standard-vue/scss'
|
|
16
14
|
: 'stylelint-config-standard-vue',
|
|
17
15
|
);
|
package/src/configs/vue.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Packages } from '@culur/utils-packages';
|
|
2
2
|
import type { Config } from 'stylelint';
|
|
3
3
|
|
|
4
|
-
export const configVue = (): Config => ({
|
|
4
|
+
export const configVue = (packages: Partial<Packages>): Config => ({
|
|
5
5
|
extends: [
|
|
6
|
-
|
|
6
|
+
packages.sass
|
|
7
7
|
? 'stylelint-config-standard-vue/scss'
|
|
8
8
|
: 'stylelint-config-standard-vue',
|
|
9
9
|
],
|
package/src/factory.test.ts
CHANGED
|
@@ -1,16 +1,30 @@
|
|
|
1
|
-
import * as utilsPackages from '@culur/utils-packages';
|
|
2
1
|
import { css, describeLintAndFix } from './__tests__';
|
|
3
2
|
import defineConfig from './factory';
|
|
4
3
|
|
|
5
|
-
describeLintAndFix(
|
|
6
|
-
{
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
]
|
|
4
|
+
describeLintAndFix(
|
|
5
|
+
() => defineConfig({ vue: true, sass: true }),
|
|
6
|
+
[
|
|
7
|
+
{
|
|
8
|
+
code: css`
|
|
9
|
+
a {
|
|
10
|
+
color: red;
|
|
11
|
+
}
|
|
12
|
+
`,
|
|
13
|
+
isError: false,
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
describeLintAndFix(
|
|
19
|
+
() => defineConfig(),
|
|
20
|
+
[
|
|
21
|
+
{
|
|
22
|
+
code: css`
|
|
23
|
+
a {
|
|
24
|
+
color: red;
|
|
25
|
+
}
|
|
26
|
+
`,
|
|
27
|
+
isError: false,
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
);
|
package/src/factory.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { Packages } from '@culur/utils-packages';
|
|
2
|
-
import { hasSass, hasVue, updateDefaultPackages } from '@culur/utils-packages';
|
|
3
2
|
import type { Config } from 'stylelint';
|
|
4
3
|
import { configCss } from './configs/css';
|
|
5
4
|
import { configScss } from './configs/scss';
|
|
@@ -8,16 +7,16 @@ import { configVue } from './configs/vue';
|
|
|
8
7
|
import { mergeConfigs } from './utils';
|
|
9
8
|
|
|
10
9
|
export default function defineConfig(
|
|
11
|
-
|
|
10
|
+
packages?: Partial<Packages>,
|
|
12
11
|
config?: Config,
|
|
13
12
|
): Config {
|
|
14
|
-
|
|
13
|
+
const packages_ = packages ?? {};
|
|
15
14
|
|
|
16
15
|
return mergeConfigs(
|
|
17
16
|
configShared(),
|
|
18
|
-
configCss(),
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
configCss(packages_),
|
|
18
|
+
packages_.sass && configScss(packages_),
|
|
19
|
+
packages_.vue && configVue(packages_),
|
|
21
20
|
config,
|
|
22
21
|
);
|
|
23
22
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as utilsPackages from '@culur/utils-packages';
|
|
2
1
|
import { assert, expect } from 'vitest';
|
|
3
2
|
import {
|
|
4
3
|
atRuleNoUnknownCSS,
|
|
@@ -8,11 +7,10 @@ import {
|
|
|
8
7
|
import { describeLintAndFix, describeRule, syntaxScss } from '~/__tests__';
|
|
9
8
|
|
|
10
9
|
describeRule(
|
|
11
|
-
utilsPackages,
|
|
12
10
|
atRuleNoUnknownRule,
|
|
13
11
|
[
|
|
14
|
-
{
|
|
15
|
-
{
|
|
12
|
+
{ tailwind: false, length: 0 },
|
|
13
|
+
{ tailwind: true, length: 7 },
|
|
16
14
|
],
|
|
17
15
|
(rule, testCase) => {
|
|
18
16
|
assert(Array.isArray(rule));
|
|
@@ -22,25 +20,23 @@ describeRule(
|
|
|
22
20
|
);
|
|
23
21
|
|
|
24
22
|
describeLintAndFix(
|
|
25
|
-
|
|
26
|
-
() => ({ rules: atRuleNoUnknownCSS() }),
|
|
23
|
+
o => ({ rules: atRuleNoUnknownCSS(o) }),
|
|
27
24
|
[
|
|
28
|
-
{
|
|
29
|
-
{
|
|
30
|
-
{
|
|
25
|
+
{ tailwind: false, code: '@unknown {}', isError: true },
|
|
26
|
+
{ tailwind: false, code: '@media {}', isError: false },
|
|
27
|
+
{ tailwind: true, code: '@tailwind {}', isError: false },
|
|
31
28
|
],
|
|
32
29
|
);
|
|
33
30
|
|
|
34
31
|
describeLintAndFix(
|
|
35
|
-
|
|
36
|
-
() => ({
|
|
32
|
+
o => ({
|
|
37
33
|
plugins: ['stylelint-scss'],
|
|
38
|
-
rules: atRuleNoUnknownSCSS(),
|
|
34
|
+
rules: atRuleNoUnknownSCSS(o),
|
|
39
35
|
overrides: [syntaxScss],
|
|
40
36
|
}),
|
|
41
37
|
[
|
|
42
|
-
{ ext: 'scss',
|
|
43
|
-
{ ext: 'scss',
|
|
44
|
-
{ ext: 'scss',
|
|
38
|
+
{ ext: 'scss', tailwind: false, code: '@unknown {}', isError: true },
|
|
39
|
+
{ ext: 'scss', tailwind: false, code: '@media {}', isError: false },
|
|
40
|
+
{ ext: 'scss', tailwind: true, code: '@tailwind {}', isError: false },
|
|
45
41
|
],
|
|
46
42
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Packages } from '@culur/utils-packages';
|
|
2
2
|
import { defineRule, defineRules } from '~/utils';
|
|
3
3
|
|
|
4
4
|
// https://tailwindcss.com/docs/functions-and-directives
|
|
@@ -15,19 +15,19 @@ const directives = [
|
|
|
15
15
|
'screen',
|
|
16
16
|
];
|
|
17
17
|
|
|
18
|
-
export const atRuleNoUnknownRule = () =>
|
|
18
|
+
export const atRuleNoUnknownRule = (packages: Partial<Packages>) =>
|
|
19
19
|
defineRule<boolean, { ignoreAtRules: (string | RegExp)[] }>([
|
|
20
20
|
true,
|
|
21
|
-
{ ignoreAtRules:
|
|
21
|
+
{ ignoreAtRules: packages.tailwind ? directives : [] },
|
|
22
22
|
]);
|
|
23
23
|
|
|
24
|
-
export const atRuleNoUnknownCSS = () =>
|
|
24
|
+
export const atRuleNoUnknownCSS = (packages: Partial<Packages>) =>
|
|
25
25
|
defineRules({
|
|
26
|
-
'at-rule-no-unknown': atRuleNoUnknownRule(),
|
|
26
|
+
'at-rule-no-unknown': atRuleNoUnknownRule(packages),
|
|
27
27
|
});
|
|
28
28
|
|
|
29
|
-
export const atRuleNoUnknownSCSS = () =>
|
|
29
|
+
export const atRuleNoUnknownSCSS = (packages: Partial<Packages>) =>
|
|
30
30
|
defineRules({
|
|
31
31
|
'at-rule-no-unknown': null,
|
|
32
|
-
'scss/at-rule-no-unknown': atRuleNoUnknownRule(),
|
|
32
|
+
'scss/at-rule-no-unknown': atRuleNoUnknownRule(packages),
|
|
33
33
|
});
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as utilsPackages from '@culur/utils-packages';
|
|
2
1
|
import { assert, expect } from 'vitest';
|
|
3
2
|
import {
|
|
4
3
|
declarationBlockNoRedundantLonghandProperties,
|
|
@@ -7,8 +6,7 @@ import {
|
|
|
7
6
|
import { css, describeLintAndFix, describeRule } from '~/__tests__';
|
|
8
7
|
|
|
9
8
|
describeRule(
|
|
10
|
-
|
|
11
|
-
declarationBlockNoRedundantLonghandPropertiesRule,
|
|
9
|
+
declarationBlockNoRedundantLonghandPropertiesRule, //
|
|
12
10
|
rule => {
|
|
13
11
|
assert(Array.isArray(rule));
|
|
14
12
|
assert(typeof rule[1] === 'object');
|
|
@@ -17,10 +15,7 @@ describeRule(
|
|
|
17
15
|
);
|
|
18
16
|
|
|
19
17
|
describeLintAndFix(
|
|
20
|
-
|
|
21
|
-
{
|
|
22
|
-
rules: declarationBlockNoRedundantLonghandProperties,
|
|
23
|
-
},
|
|
18
|
+
{ rules: declarationBlockNoRedundantLonghandProperties }, //
|
|
24
19
|
[
|
|
25
20
|
{
|
|
26
21
|
code: css`
|