Skip to content

Commit

Permalink
feat: allow to export names from global class or id (#21)
Browse files Browse the repository at this point in the history
  • Loading branch information
David Liu committed Feb 26, 2020
1 parent 59cc288 commit 4ecc5d6
Show file tree
Hide file tree
Showing 7 changed files with 92 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ const processor = postcss.plugin('postcss-modules-scope', function(options) {
(options && options.generateScopedName) || processor.generateScopedName;
const generateExportEntry =
(options && options.generateExportEntry) || processor.generateExportEntry;
const exportGlobals = options && options.exportGlobals;

const exports = Object.create(null);

Expand Down Expand Up @@ -173,6 +174,12 @@ const processor = postcss.plugin('postcss-modules-scope', function(options) {
node.each(traverseNode);
break;
}
case 'id':
case 'class':
if (exportGlobals) {
exports[node.value] = [node.value];
}
break;
}
return node;
}
Expand Down
22 changes: 22 additions & 0 deletions test/test-cases/export-global-class/expected.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
.exportName {
color: green;
}

.exportName:hover {
color: red;
}

@media screen {
body {
background: red;
}
}

._input__testLocal {
color: blue;
}

:export {
exportName: exportName;
testLocal: _input__testLocal;
}
3 changes: 3 additions & 0 deletions test/test-cases/export-global-class/options.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
exportGlobals: true,
};
17 changes: 17 additions & 0 deletions test/test-cases/export-global-class/source.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
.exportName {
color: green;
}

.exportName:hover {
color: red;
}

@media screen {
body {
background: red;
}
}

:local(.testLocal) {
color: blue;
}
23 changes: 23 additions & 0 deletions test/test-cases/export-global-id/expected.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#exportName {
color: green;
}

#exportName:hover {
color: red;
}

@media screen {
#exportName-2 {
background: red;
}
}

#_input__exportName-3 {
color: green;
}

:export {
exportName: exportName;
exportName-2: exportName-2;
exportName-3: _input__exportName-3;
}
3 changes: 3 additions & 0 deletions test/test-cases/export-global-id/options.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
exportGlobals: true,
};
17 changes: 17 additions & 0 deletions test/test-cases/export-global-id/source.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#exportName {
color: green;
}

#exportName:hover {
color: red;
}

@media screen {
#exportName-2 {
background: red;
}
}

:local(#exportName-3) {
color: green;
}

0 comments on commit 4ecc5d6

Please sign in to comment.