Skip to content

Commit

Permalink
migrate to csstree 1.0.0-alpha.27
Browse files Browse the repository at this point in the history
  • Loading branch information
lahmatiy committed Jan 14, 2018
1 parent 5733a0f commit 78b242b
Show file tree
Hide file tree
Showing 20 changed files with 157 additions and 152 deletions.
8 changes: 4 additions & 4 deletions lib/clean/Atrule.js
Expand Up @@ -51,10 +51,10 @@ module.exports = function cleanAtrule(node, item, list) {
break;

default:
var keyword = resolveKeyword(node.name);
if (keyword.name === 'keyframes' ||
keyword.name === 'media' ||
keyword.name === 'supports') {
var name = resolveKeyword(node.name).basename;
if (name === 'keyframes' ||
name === 'media' ||
name === 'supports') {

// drop at-rule with no prelude
if (!node.prelude || node.prelude.children.isEmpty()) {
Expand Down
10 changes: 6 additions & 4 deletions lib/clean/index.js
@@ -1,4 +1,4 @@
var walk = require('css-tree').walkUp;
var walk = require('css-tree').walk;
var handlers = {
Atrule: require('./Atrule'),
Rule: require('./Rule'),
Expand All @@ -10,9 +10,11 @@ var handlers = {
};

module.exports = function(ast, options) {
walk(ast, function(node, item, list) {
if (handlers.hasOwnProperty(node.type)) {
handlers[node.type].call(this, node, item, list, options);
walk(ast, {
leave: function(node, item, list) {
if (handlers.hasOwnProperty(node.type)) {
handlers[node.type].call(this, node, item, list, options);
}
}
});
};
11 changes: 7 additions & 4 deletions lib/compress.js
Expand Up @@ -4,7 +4,7 @@ var usageUtils = require('./usage');
var clean = require('./clean');
var replace = require('./replace');
var restructure = require('./restructure');
var walkRules = require('css-tree').walkRules;
var walk = require('css-tree').walk;

function readChunk(children, specialComments) {
var buffer = new List();
Expand Down Expand Up @@ -54,9 +54,12 @@ function compressChunk(ast, firstAtrulesAllowed, num, options) {
ast.id = seed++;
}

walkRules(ast, function markScopes(node) {
if (node.type === 'Atrule' && node.block !== null) {
node.block.id = seed++;
walk(ast, {
visit: 'Atrule',
enter: function markScopes(node) {
if (node.block !== null) {
node.block.id = seed++;
}
}
});
options.logger('init', ast);
Expand Down
15 changes: 7 additions & 8 deletions lib/index.js
@@ -1,8 +1,7 @@
var csstree = require('css-tree');
var parse = csstree.parse;
var compress = require('./compress');
var translate = csstree.translate;
var translateWithSourceMap = csstree.translateWithSourceMap;
var generate = csstree.generate;

function debugOutput(name, options, startTime, data) {
if (options.debug) {
Expand All @@ -23,7 +22,7 @@ function createDefaultLogger(level) {
}

if (level > 1 && ast) {
var css = translate(ast, true);
var css = generate(ast);

// when level 2, limit css to 256 symbols
if (level === 2 && css.length > 256) {
Expand Down Expand Up @@ -102,17 +101,17 @@ function minify(context, source, options) {
);
}

// translate
// generate
if (options.sourceMap) {
result = debugOutput('translateWithSourceMap', options, Date.now(), (function() {
var tmp = translateWithSourceMap(compressResult.ast);
result = debugOutput('generate(sourceMap: true)', options, Date.now(), (function() {
var tmp = generate(compressResult.ast, { sourceMap: true });
tmp.map._file = filename; // since other tools can relay on file in source map transform chain
tmp.map.setSourceContent(filename, source);
return tmp;
})());
} else {
result = debugOutput('translate', options, Date.now(), {
css: translate(compressResult.ast),
result = debugOutput('generate', options, Date.now(), {
css: generate(compressResult.ast),
map: null
});
}
Expand Down
2 changes: 1 addition & 1 deletion lib/replace/Atrule.js
Expand Up @@ -3,7 +3,7 @@ var compressKeyframes = require('./atrule/keyframes');

module.exports = function(node) {
// compress @keyframe selectors
if (resolveKeyword(node.name).name === 'keyframes') {
if (resolveKeyword(node.name).basename === 'keyframes') {
compressKeyframes(node);
}
};
4 changes: 2 additions & 2 deletions lib/replace/Value.js
Expand Up @@ -14,7 +14,7 @@ module.exports = function compressValue(node) {

var property = resolveName(this.declaration.property);

if (handlers.hasOwnProperty(property.name)) {
handlers[property.name](node);
if (handlers.hasOwnProperty(property.basename)) {
handlers[property.basename](node);
}
};
10 changes: 6 additions & 4 deletions lib/replace/index.js
@@ -1,4 +1,4 @@
var walk = require('css-tree').walkUp;
var walk = require('css-tree').walk;
var handlers = {
Atrule: require('./Atrule'),
AttributeSelector: require('./AttributeSelector'),
Expand All @@ -14,9 +14,11 @@ var handlers = {
};

module.exports = function(ast) {
walk(ast, function(node, item, list) {
if (handlers.hasOwnProperty(node.type)) {
handlers[node.type].call(this, node, item, list);
walk(ast, {
leave: function(node, item, list) {
if (handlers.hasOwnProperty(node.type)) {
handlers[node.type].call(this, node, item, list);
}
}
});
};
25 changes: 14 additions & 11 deletions lib/restructure/1-mergeAtrule.js
@@ -1,11 +1,11 @@
var List = require('css-tree').List;
var resolveKeyword = require('css-tree').keyword;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var walkRulesRight = require('css-tree').walkRulesRight;
var walk = require('css-tree').walk;

function addRuleToMap(map, item, list, single) {
var node = item.data;
var name = resolveKeyword(node.name).name;
var name = resolveKeyword(node.name).basename;
var id = node.name.toLowerCase() + '/' + (node.prelude ? node.prelude.id : null);

if (!hasOwnProperty.call(map, name)) {
Expand All @@ -29,9 +29,9 @@ function relocateAtrules(ast, options) {

ast.children.each(function(node, item, list) {
if (node.type === 'Atrule') {
var keyword = resolveKeyword(node.name);
var name = resolveKeyword(node.name).basename;

switch (keyword.name) {
switch (name) {
case 'keyframes':
addRuleToMap(collected, item, list, true);
return;
Expand All @@ -45,8 +45,8 @@ function relocateAtrules(ast, options) {
}

if (topInjectPoint === null &&
keyword.name !== 'charset' &&
keyword.name !== 'import') {
name !== 'charset' &&
name !== 'import') {
topInjectPoint = item;
}
} else {
Expand All @@ -58,7 +58,10 @@ function relocateAtrules(ast, options) {

for (var atrule in collected) {
for (var id in collected[atrule]) {
ast.children.insertList(collected[atrule][id], atrule === 'media' ? null : topInjectPoint);
ast.children.insertList(
collected[atrule][id],
atrule === 'media' ? null : topInjectPoint
);
}
}
};
Expand Down Expand Up @@ -96,9 +99,9 @@ function processAtrule(node, item, list) {
module.exports = function rejoinAtrule(ast, options) {
relocateAtrules(ast, options);

walkRulesRight(ast, function(node, item, list) {
if (node.type === 'Atrule') {
processAtrule(node, item, list);
}
walk(ast, {
visit: 'Atrule',
reverse: true,
enter: processAtrule
});
};
9 changes: 4 additions & 5 deletions lib/restructure/2-initialMergeRuleset.js
@@ -1,4 +1,4 @@
var walkRules = require('css-tree').walkRules;
var walk = require('css-tree').walk;
var utils = require('./utils');

function processRule(node, item, list) {
Expand Down Expand Up @@ -40,9 +40,8 @@ function processRule(node, item, list) {
// ruleset. When direction right to left unmerged rulesets may prevent lookup
// TODO: remove initial merge
module.exports = function initialMergeRule(ast) {
walkRules(ast, function(node, item, list) {
if (node.type === 'Rule') {
processRule(node, item, list);
}
walk(ast, {
visit: 'Rule',
enter: processRule
});
};
10 changes: 5 additions & 5 deletions lib/restructure/3-disjoinRuleset.js
@@ -1,5 +1,5 @@
var List = require('css-tree').List;
var walkRulesRight = require('css-tree').walkRulesRight;
var walk = require('css-tree').walk;

function processRule(node, item, list) {
var selectors = node.prelude.children;
Expand Down Expand Up @@ -34,9 +34,9 @@ function processRule(node, item, list) {
}

module.exports = function disjoinRule(ast) {
walkRulesRight(ast, function(node, item, list) {
if (node.type === 'Rule') {
processRule(node, item, list);
}
walk(ast, {
visit: 'Rule',
reverse: true,
enter: processRule
});
};
60 changes: 30 additions & 30 deletions lib/restructure/4-restructShorthand.js
@@ -1,6 +1,6 @@
var List = require('css-tree').List;
var translate = require('css-tree').translate;
var walkRulesRight = require('css-tree').walkRulesRight;
var generate = require('css-tree').generate;
var walk = require('css-tree').walk;

var REPLACE = 1;
var REMOVE = 2;
Expand Down Expand Up @@ -278,10 +278,10 @@ TRBL.prototype.getValue = function() {
sides.left
];
var stringValues = [
translate(sides.top.node),
translate(sides.right.node),
translate(sides.bottom.node),
translate(sides.left.node)
generate(sides.top.node),
generate(sides.right.node),
generate(sides.bottom.node),
generate(sides.left.node)
];

if (stringValues[LEFT] === stringValues[RIGHT]) {
Expand Down Expand Up @@ -395,33 +395,33 @@ module.exports = function restructBlock(ast, indexer) {
var stylesheetMap = {};
var shortDeclarations = [];

walkRulesRight(ast, function(node) {
if (node.type !== 'Rule') {
return;
}

var stylesheet = this.block || this.stylesheet;
var ruleId = (node.pseudoSignature || '') + '|' + node.prelude.children.first().id;
var ruleMap;
var shorts;
walk(ast, {
visit: 'Rule',
reverse: true,
enter: function(node) {
var stylesheet = this.block || this.stylesheet;
var ruleId = (node.pseudoSignature || '') + '|' + node.prelude.children.first().id;
var ruleMap;
var shorts;

if (!stylesheetMap.hasOwnProperty(stylesheet.id)) {
ruleMap = {
lastShortSelector: null
};
stylesheetMap[stylesheet.id] = ruleMap;
} else {
ruleMap = stylesheetMap[stylesheet.id];
}

if (!stylesheetMap.hasOwnProperty(stylesheet.id)) {
ruleMap = {
lastShortSelector: null
};
stylesheetMap[stylesheet.id] = ruleMap;
} else {
ruleMap = stylesheetMap[stylesheet.id];
}
if (ruleMap.hasOwnProperty(ruleId)) {
shorts = ruleMap[ruleId];
} else {
shorts = {};
ruleMap[ruleId] = shorts;
}

if (ruleMap.hasOwnProperty(ruleId)) {
shorts = ruleMap[ruleId];
} else {
shorts = {};
ruleMap[ruleId] = shorts;
ruleMap.lastShortSelector = processRule.call(this, node, shorts, shortDeclarations, ruleMap.lastShortSelector);
}

ruleMap.lastShortSelector = processRule.call(this, node, shorts, shortDeclarations, ruleMap.lastShortSelector);
});

processShorthands(shortDeclarations, indexer.declaration);
Expand Down

0 comments on commit 78b242b

Please sign in to comment.