diff --git a/package.json b/package.json index ed14adc..43750c9 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "homepage": "https://github.com/geelen/postcss-modules-scope", "dependencies": { "css-selector-tokenizer": "^0.5.0", - "postcss": "^4.1.11" + "postcss": "^5.0.4" }, "devDependencies": { "babel": "^5.4.7", diff --git a/src/index.js b/src/index.js index b2f5856..6eb51f8 100644 --- a/src/index.js +++ b/src/index.js @@ -79,20 +79,20 @@ const processor = postcss.plugin('postcss-modules-scope', function(options) { // Find any :import and remember imported names let importedNames = {}; - css.eachRule(rule => { + css.walkRules(rule => { if(/^:import\(.+\)$/.test(rule.selector)) { - rule.eachDecl(decl => { + rule.walkDecls(decl => { importedNames[decl.prop] = true; }); } }); // Find any :local classes - css.eachRule(rule => { + css.walkRules(rule => { let selector = Tokenizer.parse(rule.selector); let newSelector = traverseNode(selector); rule.selector = Tokenizer.stringify(newSelector); - rule.eachDecl("composes", decl => { + rule.walkDecls("composes", decl => { let localNames = getSingleLocalNamesForComposes(selector); let classes = decl.value.split(/\s+/); classes.forEach((className) => { @@ -110,9 +110,9 @@ const processor = postcss.plugin('postcss-modules-scope', function(options) { throw decl.error("referenced class name \"" + className + "\" in composes not found"); } }); - decl.removeSelf(); + decl.remove(); }); - rule.eachDecl(decl => { + rule.walkDecls(decl => { var tokens = decl.value.split(/(,|'[^']*'|"[^"]*")/); tokens = tokens.map((token, idx) => { if(idx === 0 || tokens[idx - 1] === ',') { @@ -131,7 +131,7 @@ const processor = postcss.plugin('postcss-modules-scope', function(options) { }); // Find any :local keyframes - css.eachAtRule(atrule => { + css.walkAtRules(atrule => { if(/keyframes$/.test(atrule.name)) { var localMatch = /^\s*:local\s*\((.+?)\)\s*$/.exec(atrule.params); if(localMatch) { @@ -148,7 +148,7 @@ const processor = postcss.plugin('postcss-modules-scope', function(options) { nodes: exportedNames.map(exportedName => postcss.decl({ prop: exportedName, value: exports[exportedName].join(" "), - before: "\n ", + raws: { before: "\n " }, _autoprefixerDisabled: true })) })); diff --git a/test/test-cases.js b/test/test-cases.js index fd6159c..1e6a3d7 100644 --- a/test/test-cases.js +++ b/test/test-cases.js @@ -9,7 +9,7 @@ var postcss = require("postcss"); var processor = require("../"); function generateInvalidCSS(css) { - css.eachDecl(function(decl) { + css.walkDecls(function(decl) { decl.value = decl.value.replace(/_colon_/g, ":"); // because using a : in the tests would make it invalid CSS. }); }