postcss-ordered-values
Advanced tools
Comparing version
@@ -0,1 +1,5 @@ | ||
# 2.1.0 | ||
* Adds support for re-ordering `box-shadow` declarations. | ||
# 2.0.2 | ||
@@ -2,0 +6,0 @@ |
'use strict'; | ||
Object.defineProperty(exports, '__esModule', { | ||
value: true | ||
}); | ||
exports.__esModule = true; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | ||
var _postcss = require('postcss'); | ||
@@ -13,81 +9,26 @@ | ||
var _postcssValueParser = require('postcss-value-parser'); | ||
var _border = require('./rules/border'); | ||
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser); | ||
var _border2 = _interopRequireDefault(_border); | ||
// border: <line-width> || <line-style> || <color> | ||
// outline: <outline-color> || <outline-style> || <outline-width> | ||
var borderProps = ['border', 'border-top', 'border-right', 'border-bottom', 'border-left', 'outline']; | ||
var _boxShadow = require('./rules/boxShadow'); | ||
var borderWidths = ['thin', 'medium', 'thick']; | ||
var _boxShadow2 = _interopRequireDefault(_boxShadow); | ||
var borderStyles = ['none', 'auto', // only in outline-style | ||
'hidden', 'dotted', 'dashed', 'solid', 'double', 'groove', 'ridge', 'inset', 'outset']; | ||
var _flexFlow = require('./rules/flexFlow'); | ||
// flex-flow: <flex-direction> || <flex-wrap> | ||
var flexFlowProps = ['flex-flow']; | ||
var _flexFlow2 = _interopRequireDefault(_flexFlow); | ||
var flexDirection = ['row', 'row-reverse', 'column', 'column-reverse']; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var flexWrap = ['nowrap ', 'wrap', 'wrap-reverse']; | ||
var rules = [_border2.default, _boxShadow2.default, _flexFlow2.default]; | ||
function normalizeBorder(decl) { | ||
var order = { width: '', style: '', color: '' }; | ||
var border = (0, _postcssValueParser2['default'])(decl.value); | ||
if (border.nodes.length > 2) { | ||
border.walk(function (node) { | ||
if (node.type === 'word') { | ||
if (~borderStyles.indexOf(node.value)) { | ||
order.style = node.value; | ||
return; | ||
} | ||
if (~borderWidths.indexOf(node.value) || (0, _postcssValueParser.unit)(node.value)) { | ||
order.width = node.value; | ||
return; | ||
} | ||
order.color = node.value; | ||
return; | ||
} | ||
if (node.type === 'function') { | ||
if (node.value === 'calc') { | ||
order.width = (0, _postcssValueParser.stringify)(node); | ||
} else { | ||
order.color = (0, _postcssValueParser.stringify)(node); | ||
} | ||
return false; | ||
} | ||
}); | ||
decl.value = (order.width + ' ' + order.style + ' ' + order.color).trim(); | ||
} | ||
}; | ||
// rules | ||
function normalizeFlexFlow(decl) { | ||
var order = { direction: '', wrap: '' }; | ||
var flexFlow = (0, _postcssValueParser2['default'])(decl.value); | ||
if (flexFlow.nodes.length > 2) { | ||
flexFlow.walk(function (node) { | ||
if (~flexDirection.indexOf(node.value)) { | ||
order.direction = node.value; | ||
return; | ||
} | ||
if (~flexWrap.indexOf(node.value)) { | ||
order.wrap = node.value; | ||
return; | ||
} | ||
}); | ||
decl.value = (order.direction + ' ' + order.wrap).trim(); | ||
} | ||
}; | ||
exports['default'] = _postcss2['default'].plugin('postcss-ordered-values', function () { | ||
exports.default = _postcss2.default.plugin('postcss-ordered-values', function () { | ||
return function (css) { | ||
css.walkDecls(function (decl) { | ||
if (~borderProps.indexOf(decl.prop)) { | ||
normalizeBorder(decl); | ||
return; | ||
} | ||
if (~flexFlowProps.indexOf(decl.prop)) { | ||
normalizeFlexFlow(decl); | ||
return; | ||
} | ||
return css.walkDecls(function (decl) { | ||
return rules.forEach(function (rule) { | ||
return rule(decl); | ||
}); | ||
}); | ||
@@ -94,0 +35,0 @@ }; |
{ | ||
"name": "postcss-ordered-values", | ||
"version": "2.0.2", | ||
"version": "2.1.0", | ||
"description": "Ensure values are ordered consistently in your CSS.", | ||
"main": "dist/index.js", | ||
"files": [ | ||
"LICENSE-MIT", | ||
"dist" | ||
"dist", | ||
"LICENSE-MIT" | ||
], | ||
"scripts": { | ||
"prepublish": "babel src --out-dir dist --ignore /__tests__/", | ||
"test": "babel-tape-runner \"src/**/__tests__/*.js\" | tap-spec" | ||
"pretest": "eslint src", | ||
"prepublish": "de dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/", | ||
"test": "ava src/__tests__" | ||
}, | ||
@@ -21,6 +22,12 @@ "keywords": [ | ||
"devDependencies": { | ||
"babel": "^5.8.23", | ||
"babel-tape-runner": "^1.2.0", | ||
"tap-spec": "^4.1.0", | ||
"tape": "^4.2.0" | ||
"ava": "^0.11.0", | ||
"babel-cli": "^6.3.17", | ||
"babel-core": "^6.3.26", | ||
"babel-plugin-add-module-exports": "^0.1.2", | ||
"babel-preset-es2015": "^6.3.13", | ||
"babel-preset-es2015-loose": "^7.0.0", | ||
"babel-preset-stage-0": "^6.3.13", | ||
"del-cli": "^0.1.2", | ||
"eslint": "^1.10.3", | ||
"eslint-config-cssnano": "^1.0.0" | ||
}, | ||
@@ -37,3 +44,9 @@ "homepage": "https://github.com/ben-eb/postcss-ordered-values", | ||
"postcss-value-parser": "^3.0.1" | ||
}, | ||
"ava": { | ||
"require": "babel-core/register" | ||
}, | ||
"eslintConfig": { | ||
"extends": "cssnano" | ||
} | ||
} |
@@ -46,5 +46,6 @@ # [postcss][postcss]-ordered-values [][ci] [][npm] [][deps] | ||
* border(border-left|right|top|bottom) | ||
* outline | ||
* flex-flow | ||
* `border(border-left|right|top|bottom)` | ||
* `box-shadow` | ||
* `outline` | ||
* `flex-flow` | ||
@@ -51,0 +52,0 @@ ## Usage |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
11384
52.48%8
60%167
111.39%69
1.47%10
150%1
Infinity%