index.js 963 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. var bug4 = require('./bugs/bug4');
  2. var bug6 = require('./bugs/bug6');
  3. var bug81a = require('./bugs/bug81a');
  4. var doNothingValues = [
  5. 'none',
  6. 'auto',
  7. 'content',
  8. 'inherit',
  9. 'initial',
  10. 'unset'
  11. ];
  12. module.exports = function(opts) {
  13. var options = Object.assign({ bug4: true, bug6: true, bug81a: true }, opts);
  14. return {
  15. postcssPlugin: 'postcss-flexbugs-fixes',
  16. Once: function(css, postcss) {
  17. css.walkDecls(function(d) {
  18. if (d.value.indexOf('var(') > -1) {
  19. return;
  20. }
  21. if (d.value === 'none') {
  22. return;
  23. }
  24. var values = postcss.list.space(d.value);
  25. if (doNothingValues.indexOf(d.value) > 0 && values.length === 1) {
  26. return;
  27. }
  28. if (options.bug4) {
  29. bug4(d);
  30. }
  31. if (options.bug6) {
  32. bug6(d);
  33. }
  34. if (options.bug81a) {
  35. bug81a(d);
  36. }
  37. })
  38. }
  39. };
  40. };
  41. module.exports.postcss = true;