@stardust-ui/fela-tools
Version:
Useful tools for working with Fela
43 lines (29 loc) • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports.default = renderToString;
var _arrayReduce = require('fast-loops/lib/arrayReduce');
var _arrayReduce2 = _interopRequireDefault(_arrayReduce);
var _felaUtils = require('fela-utils');
var _cssifyMediaQueryRules = require('./cssifyMediaQueryRules');
var _cssifyMediaQueryRules2 = _interopRequireDefault(_cssifyMediaQueryRules);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function renderToString(renderer) {
var _clusterCache = (0, _felaUtils.clusterCache)(renderer.cache, renderer.mediaQueryOrder, renderer.supportQueryOrder, renderer.ruleOrder),
fontFaces = _clusterCache.fontFaces,
statics = _clusterCache.statics,
keyframes = _clusterCache.keyframes,
rules = _clusterCache.rules,
mediaRules = _clusterCache.mediaRules,
supportRules = _clusterCache.supportRules,
supportMediaRules = _clusterCache.supportMediaRules;
var basicCSS = fontFaces + statics + keyframes + rules + (0, _felaUtils.cssifySupportRules)(supportRules);
var mediaKeys = Object.keys(_extends({}, supportMediaRules, mediaRules));
return (0, _arrayReduce2.default)(mediaKeys, function (css, query) {
var mediaCSS = mediaRules[query] || '';
var supportCSS = (0, _felaUtils.cssifySupportRules)(supportMediaRules[query] || {});
return css + (0, _cssifyMediaQueryRules2.default)(query, mediaCSS + supportCSS);
}, basicCSS);
}