react-native-web-headroom
Version:
React Native Web Headroom
93 lines (67 loc) • 3.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = generateData;
var _generateStaticPrefixMap = require('./generateStaticPrefixMap');
var _generateStaticPrefixMap2 = _interopRequireDefault(_generateStaticPrefixMap);
var _generateDynamicPrefixMap = require('./generateDynamicPrefixMap');
var _generateDynamicPrefixMap2 = _interopRequireDefault(_generateDynamicPrefixMap);
var _generatePluginList = require('./generatePluginList');
var _generatePluginList2 = _interopRequireDefault(_generatePluginList);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function generateImportString(plugin, pluginPath, compatibility) {
if (compatibility) {
return 'var ' + plugin + ' = require(\'inline-style-prefixer/' + pluginPath + '/plugins/' + plugin + '\')';
}
return 'import ' + plugin + ' from \'inline-style-prefixer/' + pluginPath + '/plugins/' + plugin + '\'';
}
function generateFile(prefixMap, pluginList, compatibility, pluginPath) {
var pluginImports = pluginList.map(function (plugin) {
return generateImportString(plugin, pluginPath, compatibility);
}).join('\n');
var moduleExporter = compatibility ? 'module.exports = ' : 'export default';
var pluginExport = '[' + pluginList.join(',') + ']';
var prefixMapExport = JSON.stringify(prefixMap);
if (pluginPath === 'static') {
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');
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}';
}
return pluginImports + '\n\n' + moduleExporter + ' {\n plugins: ' + pluginExport + ',\n prefixMap: ' + prefixMapExport + '\n}';
}
function saveFile(fileContent, path) {
/* eslint-disable global-require */
var fs = require('fs');
/* eslint-enable global-require */
fs.writeFile(path, fileContent, function (err) {
if (err) {
throw err;
}
console.log('Successfully saved data to "' + path + '".');
});
}
function generateData(browserList) {
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
compatibility = _ref.compatibility,
plugins = _ref.plugins,
staticPath = _ref.staticPath,
dynamicPath = _ref.dynamicPath,
prefixMap = _ref.prefixMap;
var shouldRenderPlugins = plugins !== undefined ? plugins : true;
var shouldRenderPrefixMap = prefixMap !== undefined ? prefixMap : true;
var data = {
static: shouldRenderPrefixMap ? (0, _generateStaticPrefixMap2.default)(browserList) : {},
dynamic: shouldRenderPrefixMap ? (0, _generateDynamicPrefixMap2.default)(browserList) : {},
plugins: shouldRenderPlugins ? (0, _generatePluginList2.default)(browserList) : []
};
if (staticPath) {
var fileContent = generateFile(data.static, data.plugins, compatibility, 'static');
saveFile(fileContent, staticPath);
}
if (dynamicPath) {
var _fileContent = generateFile(data.dynamic, data.plugins, compatibility, 'dynamic');
saveFile(_fileContent, dynamicPath);
}
return data;
}
module.exports = exports['default'];