postcss-ordered-values
Advanced tools
Comparing version
@@ -0,1 +1,5 @@ | ||
# 2.2.0 | ||
* Adds support for re-ordering `transition` declarations. | ||
# 2.1.1 | ||
@@ -2,0 +6,0 @@ |
@@ -21,9 +21,13 @@ 'use strict'; | ||
var _transition = require('./rules/transition'); | ||
var _transition2 = _interopRequireDefault(_transition); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var rules = [_border2.default, _boxShadow2.default, _flexFlow2.default]; | ||
// rules | ||
var rules = [_border2.default, _boxShadow2.default, _flexFlow2.default, _transition2.default]; | ||
exports.default = _postcss2.default.plugin('postcss-ordered-values', function () { | ||
@@ -30,0 +34,0 @@ return function (css) { |
@@ -8,4 +8,6 @@ 'use strict'; | ||
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser); | ||
var _getParsed = require('../lib/getParsed'); | ||
var _getParsed2 = _interopRequireDefault(_getParsed); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -26,42 +28,39 @@ | ||
} | ||
var value = decl.value; | ||
if (decl.raws && decl.raws.value && decl.raws.value.raw) { | ||
value = decl.raws.value.raw; | ||
} | ||
var order = { width: '', style: '', color: '' }; | ||
var border = (0, _postcssValueParser2.default)(value); | ||
var abort = false; | ||
var border = (0, _getParsed2.default)(decl); | ||
if (border.nodes.length > 2) { | ||
border.walk(function (node) { | ||
if (node.type === 'comment') { | ||
abort = true; | ||
return false; | ||
} | ||
if (node.type === 'word') { | ||
if (~borderStyles.indexOf(node.value)) { | ||
order.style = node.value; | ||
(function () { | ||
var order = { width: '', style: '', color: '' }; | ||
var abort = false; | ||
border.walk(function (node) { | ||
if (node.type === 'comment') { | ||
abort = true; | ||
return false; | ||
} | ||
if (~borderWidths.indexOf(node.value) || (0, _postcssValueParser.unit)(node.value)) { | ||
order.width = node.value; | ||
if (node.type === 'word') { | ||
if (~borderStyles.indexOf(node.value)) { | ||
order.style = node.value; | ||
return false; | ||
} | ||
if (~borderWidths.indexOf(node.value) || (0, _postcssValueParser.unit)(node.value)) { | ||
order.width = node.value; | ||
return false; | ||
} | ||
order.color = node.value; | ||
return false; | ||
} | ||
order.color = node.value; | ||
return false; | ||
} | ||
if (node.type === 'function') { | ||
if (node.value === 'calc') { | ||
order.width = (0, _postcssValueParser.stringify)(node); | ||
} else { | ||
order.color = (0, _postcssValueParser.stringify)(node); | ||
if (node.type === 'function') { | ||
if (node.value === 'calc') { | ||
order.width = (0, _postcssValueParser.stringify)(node); | ||
} else { | ||
order.color = (0, _postcssValueParser.stringify)(node); | ||
} | ||
return false; | ||
} | ||
return false; | ||
}); | ||
if (!abort) { | ||
decl.value = (order.width + ' ' + order.style + ' ' + order.color).trim(); | ||
} | ||
}); | ||
if (!abort) { | ||
decl.value = (order.width + ' ' + order.style + ' ' + order.color).trim(); | ||
} | ||
})(); | ||
} | ||
}; | ||
module.exports = exports['default']; |
@@ -8,17 +8,20 @@ 'use strict'; | ||
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser); | ||
var _addSpace = require('../lib/addSpace'); | ||
var _addSpace2 = _interopRequireDefault(_addSpace); | ||
var _getArguments = require('../lib/getArguments'); | ||
var _getArguments2 = _interopRequireDefault(_getArguments); | ||
var _getParsed = require('../lib/getParsed'); | ||
var _getParsed2 = _interopRequireDefault(_getParsed); | ||
var _getValue = require('../lib/getValue'); | ||
var _getValue2 = _interopRequireDefault(_getValue); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function getArguments(node) { | ||
return node.nodes.reduce(function (list, child) { | ||
if (child.type !== 'div' || child.value !== ',') { | ||
list[list.length - 1].push(child); | ||
} else { | ||
list.push([]); | ||
} | ||
return list; | ||
}, [[]]); | ||
} | ||
// box-shadow: inset? && <length>{2,4} && <color>? | ||
@@ -30,8 +33,3 @@ | ||
} | ||
var value = decl.value; | ||
if (decl.raws && decl.raws.value && decl.raws.value.raw) { | ||
value = decl.raws.value.raw; | ||
} | ||
var parsed = (0, _postcssValueParser2.default)(value); | ||
var parsed = (0, _getParsed2.default)(decl); | ||
if (parsed.nodes.length < 2) { | ||
@@ -41,9 +39,7 @@ return; | ||
var args = getArguments(parsed); | ||
var values = []; | ||
var args = (0, _getArguments2.default)(parsed); | ||
var abort = false; | ||
args.forEach(function (arg) { | ||
values.push([]); | ||
var val = values[values.length - 1]; | ||
var values = args.reduce(function (list, arg) { | ||
var val = []; | ||
var state = { | ||
@@ -62,14 +58,11 @@ inset: [], | ||
if ((0, _postcssValueParser.unit)(node.value)) { | ||
val.push(node); | ||
val.push({ type: 'space', value: ' ' }); | ||
val = [].concat(val, [node, (0, _addSpace2.default)()]); | ||
} else if (node.value === 'inset') { | ||
state.inset.push(node); | ||
state.inset.push({ type: 'space', value: ' ' }); | ||
state.inset = [].concat(state.inset, [node, (0, _addSpace2.default)()]); | ||
} else { | ||
state.color.push(node); | ||
state.color.push({ type: 'space', value: ' ' }); | ||
state.color = [].concat(state.color, [node, (0, _addSpace2.default)()]); | ||
} | ||
}); | ||
values[values.length - 1] = state.inset.concat(val).concat(state.color); | ||
}); | ||
return [].concat(list, [[].concat(state.inset, val, state.color)]); | ||
}, []); | ||
@@ -80,22 +73,4 @@ if (abort) { | ||
decl.value = (0, _postcssValueParser.stringify)({ | ||
nodes: values.reduce(function (nodes, arg, index) { | ||
arg.forEach(function (val, idx) { | ||
if (idx === arg.length - 1 && index === values.length - 1 && val.type === 'space') { | ||
return; | ||
} | ||
nodes.push(val); | ||
}); | ||
if (index !== values.length - 1) { | ||
if (nodes[nodes.length - 1] && nodes[nodes.length - 1].type === 'space') { | ||
nodes[nodes.length - 1].type = 'div'; | ||
nodes[nodes.length - 1].value = ','; | ||
return nodes; | ||
} | ||
nodes.push({ type: 'div', value: ',' }); | ||
} | ||
return nodes; | ||
}, []) | ||
}); | ||
decl.value = (0, _getValue2.default)(values); | ||
} | ||
module.exports = exports['default']; |
@@ -6,5 +6,5 @@ 'use strict'; | ||
var _postcssValueParser = require('postcss-value-parser'); | ||
var _getParsed = require('../lib/getParsed'); | ||
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser); | ||
var _getParsed2 = _interopRequireDefault(_getParsed); | ||
@@ -24,30 +24,27 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
} | ||
var value = decl.value; | ||
if (decl.raws && decl.raws.value && decl.raws.value.raw) { | ||
value = decl.raws.value.raw; | ||
} | ||
var order = { direction: '', wrap: '' }; | ||
var flexFlow = (0, _postcssValueParser2.default)(value); | ||
var abort = false; | ||
var flexFlow = (0, _getParsed2.default)(decl); | ||
if (flexFlow.nodes.length > 2) { | ||
flexFlow.walk(function (node) { | ||
if (node.type === 'comment') { | ||
abort = true; | ||
return; | ||
(function () { | ||
var order = { direction: '', wrap: '' }; | ||
var abort = false; | ||
flexFlow.walk(function (node) { | ||
if (node.type === 'comment') { | ||
abort = true; | ||
return; | ||
} | ||
if (~flexDirection.indexOf(node.value)) { | ||
order.direction = node.value; | ||
return; | ||
} | ||
if (~flexWrap.indexOf(node.value)) { | ||
order.wrap = node.value; | ||
return; | ||
} | ||
}); | ||
if (!abort) { | ||
decl.value = (order.direction + ' ' + order.wrap).trim(); | ||
} | ||
if (~flexDirection.indexOf(node.value)) { | ||
order.direction = node.value; | ||
return; | ||
} | ||
if (~flexWrap.indexOf(node.value)) { | ||
order.wrap = node.value; | ||
return; | ||
} | ||
}); | ||
if (!abort) { | ||
decl.value = (order.direction + ' ' + order.wrap).trim(); | ||
} | ||
})(); | ||
} | ||
}; | ||
module.exports = exports['default']; |
{ | ||
"name": "postcss-ordered-values", | ||
"version": "2.1.1", | ||
"version": "2.2.0", | ||
"description": "Ensure values are ordered consistently in your CSS.", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
16537
32.93%13
62.5%289
43.78%