Skip to content

Commit d6e38e6

Browse files
fix: don't generate invalid escaping classes (css-modules#9)
1 parent 67697e6 commit d6e38e6

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

src/index.js

+10-4
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ const processor = postcss.plugin('postcss-modules-scope', function(options) {
5858

5959
const exports = Object.create(null);
6060

61-
function exportScopedName(name) {
61+
function exportScopedName(name, rawName) {
6262
const scopedName = generateScopedName(
63-
name,
63+
rawName ? rawName : name,
6464
css.source.input.from,
6565
css.source.input.css
6666
);
@@ -78,11 +78,17 @@ const processor = postcss.plugin('postcss-modules-scope', function(options) {
7878
return node;
7979
case 'class':
8080
return selectorParser.className({
81-
value: exportScopedName(node.value),
81+
value: exportScopedName(
82+
node.value,
83+
node.raws && node.raws.value ? node.raws.value : null
84+
),
8285
});
8386
case 'id': {
8487
return selectorParser.id({
85-
value: exportScopedName(node.value),
88+
value: exportScopedName(
89+
node.value,
90+
node.raws && node.raws.value ? node.raws.value : null
91+
),
8692
});
8793
}
8894
}

test/test-cases/export-class/expected.css

+5
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
color: red;
77
}
88

9+
._input__\:\:\:\: {
10+
color: rebeccapurple;
11+
}
12+
913
@media (max-width: 520px) {
1014
/* selector doubled to increase specificity */
1115
._input__exportName._input__exportName {
@@ -19,5 +23,6 @@
1923

2024
:export {
2125
exportName: _input__exportName;
26+
::::: _input__\:\:\:\:;
2227
newExport: _input__newExport;
2328
}

test/test-cases/export-class/source.css

+4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
color: red;
77
}
88

9+
:local(.\:\:\:\:) {
10+
color: rebeccapurple;
11+
}
12+
913
@media (max-width: 520px) {
1014
/* selector doubled to increase specificity */
1115
:local(.exportName):local(.exportName) {

0 commit comments

Comments
 (0)