postcss-modules-scope
Advanced tools
Comparing version 3.1.1 to 3.1.2
{ | ||
"name": "postcss-modules-scope", | ||
"version": "3.1.1", | ||
"version": "3.1.2", | ||
"description": "A CSS Modules transform to extract export statements from local-scope classes", | ||
@@ -5,0 +5,0 @@ "main": "src/index.js", |
@@ -180,3 +180,3 @@ "use strict"; | ||
function traverseNode(node, needExport = true) { | ||
function traverseNode(node) { | ||
switch (node.type) { | ||
@@ -189,3 +189,3 @@ case "pseudo": | ||
const selector = localizeNode(node.first, needExport); | ||
const selector = localizeNode(node.first); | ||
// move the spaces that were around the pseudo selector to the first | ||
@@ -213,3 +213,3 @@ // non-container node | ||
case "selector": { | ||
node.each((item) => traverseNode(item, needExport)); | ||
node.each((item) => traverseNode(item)); | ||
break; | ||
@@ -219,3 +219,3 @@ } | ||
case "class": | ||
if (needExport && exportGlobals) { | ||
if (exportGlobals) { | ||
exports[node.value] = [node.value]; | ||
@@ -324,18 +324,20 @@ } | ||
root.walkAtRules(/scope$/i, (atRule) => { | ||
atRule.params = atRule.params | ||
.split("to") | ||
.map((item) => { | ||
const selector = item.trim().slice(1, -1).trim(); | ||
if (atRule.params) { | ||
atRule.params = atRule.params | ||
.split("to") | ||
.map((item) => { | ||
const selector = item.trim().slice(1, -1).trim(); | ||
const localMatch = /^\s*:local\s*\((.+?)\)\s*$/.exec(selector); | ||
const localMatch = /^\s*:local\s*\((.+?)\)\s*$/.exec(selector); | ||
if (!localMatch) { | ||
return `(${selector})`; | ||
} | ||
if (!localMatch) { | ||
return `(${selector})`; | ||
} | ||
let parsedSelector = selectorParser().astSync(selector); | ||
let parsedSelector = selectorParser().astSync(selector); | ||
return `(${traverseNode(parsedSelector, false).toString()})`; | ||
}) | ||
.join(" to "); | ||
return `(${traverseNode(parsedSelector).toString()})`; | ||
}) | ||
.join(" to "); | ||
} | ||
}); | ||
@@ -342,0 +344,0 @@ |
313
15011