Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

3 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = generateData;
  6. var _generateStaticPrefixMap = require('./generateStaticPrefixMap');
  7. var _generateStaticPrefixMap2 = _interopRequireDefault(_generateStaticPrefixMap);
  8. var _generateDynamicPrefixMap = require('./generateDynamicPrefixMap');
  9. var _generateDynamicPrefixMap2 = _interopRequireDefault(_generateDynamicPrefixMap);
  10. var _generatePluginList = require('./generatePluginList');
  11. var _generatePluginList2 = _interopRequireDefault(_generatePluginList);
  12. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  13. function generateImportString(plugin, pluginPath, compatibility) {
  14. if (compatibility) {
  15. return 'var ' + plugin + ' = require(\'inline-style-prefixer/' + pluginPath + '/plugins/' + plugin + '\')';
  16. }
  17. return 'import ' + plugin + ' from \'inline-style-prefixer/' + pluginPath + '/plugins/' + plugin + '\'';
  18. }
  19. function generateFile(prefixMap, pluginList, compatibility, pluginPath) {
  20. var pluginImports = pluginList.map(function (plugin) {
  21. return generateImportString(plugin, pluginPath, compatibility);
  22. }).join('\n');
  23. var moduleExporter = compatibility ? 'module.exports = ' : 'export default';
  24. var pluginExport = '[' + pluginList.join(',') + ']';
  25. var prefixMapExport = JSON.stringify(prefixMap);
  26. if (pluginPath === 'static') {
  27. var prefixVariables = ['var w = ["Webkit"];', 'var m = ["Moz"];', 'var ms = ["ms"];', 'var wm = ["Webkit","Moz"];', 'var wms = ["Webkit","ms"];', 'var wmms = ["Webkit","Moz","ms"];'].join('\n');
  28. return pluginImports + '\n' + prefixVariables + '\n\n' + moduleExporter + ' {\n plugins: ' + pluginExport + ',\n prefixMap: ' + prefixMapExport.replace(/\["Webkit"\]/g, 'w').replace(/\["Moz"\]/g, 'm').replace(/\["ms"\]/g, 'ms').replace(/\["Webkit","Moz"\]/g, 'wm').replace(/\["Webkit","ms"\]/g, 'wms').replace(/\["Webkit","Moz","ms"\]/g, 'wmms') + '\n}';
  29. }
  30. return pluginImports + '\n\n' + moduleExporter + ' {\n plugins: ' + pluginExport + ',\n prefixMap: ' + prefixMapExport + '\n}';
  31. }
  32. function saveFile(fileContent, path) {
  33. /* eslint-disable global-require */
  34. var fs = require('fs');
  35. /* eslint-enable global-require */
  36. fs.writeFile(path, fileContent, function (err) {
  37. if (err) {
  38. throw err;
  39. }
  40. console.log('Successfully saved data to "' + path + '".');
  41. });
  42. }
  43. function generateData(browserList) {
  44. var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
  45. compatibility = _ref.compatibility,
  46. plugins = _ref.plugins,
  47. staticPath = _ref.staticPath,
  48. dynamicPath = _ref.dynamicPath,
  49. prefixMap = _ref.prefixMap;
  50. var shouldRenderPlugins = plugins !== undefined ? plugins : true;
  51. var shouldRenderPrefixMap = prefixMap !== undefined ? prefixMap : true;
  52. var data = {
  53. static: shouldRenderPrefixMap ? (0, _generateStaticPrefixMap2.default)(browserList) : {},
  54. dynamic: shouldRenderPrefixMap ? (0, _generateDynamicPrefixMap2.default)(browserList) : {},
  55. plugins: shouldRenderPlugins ? (0, _generatePluginList2.default)(browserList) : []
  56. };
  57. if (staticPath) {
  58. var fileContent = generateFile(data.static, data.plugins, compatibility, 'static');
  59. saveFile(fileContent, staticPath);
  60. }
  61. if (dynamicPath) {
  62. var _fileContent = generateFile(data.dynamic, data.plugins, compatibility, 'dynamic');
  63. saveFile(_fileContent, dynamicPath);
  64. }
  65. return data;
  66. }
  67. module.exports = exports['default'];