prefix.js 911 B

12345678910111213141516171819202122232425262728
  1. var memoize = require('./memoize');
  2. var camelCase = require('./camelCase');
  3. var upperFirst = require('./upperFirst');
  4. var has = require('./has');
  5. var kebabCase = require('./kebabCase');
  6. exports = memoize(function(name) {
  7. name = name.replace(regPrefixes, '');
  8. name = camelCase(name);
  9. if (has(style, name)) return name;
  10. var i = prefixes.length;
  11. while (i--) {
  12. var prefixName = prefixes[i] + upperFirst(name);
  13. if (has(style, prefixName)) return prefixName;
  14. }
  15. return name;
  16. });
  17. exports.dash = memoize(function(name) {
  18. var camelCaseResult = exports(name);
  19. return (
  20. (regPrefixes.test(camelCaseResult) ? '-' : '') +
  21. kebabCase(camelCaseResult)
  22. );
  23. });
  24. var prefixes = ['O', 'ms', 'Moz', 'Webkit'];
  25. var regPrefixes = /^(O)|(ms)|(Moz)|(Webkit)|(-o-)|(-ms-)|(-moz-)|(-webkit-)/g;
  26. var style = document.createElement('p').style;
  27. module.exports = exports;