@stardust-ui/fela-tools
Version:
Useful tools for working with Fela
28 lines (21 loc) • 1.41 kB
JavaScript
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; };
import arrayReduce from 'fast-loops/lib/arrayReduce';
import { clusterCache, cssifySupportRules, RULE_TYPE, KEYFRAME_TYPE, STATIC_TYPE, FONT_TYPE } from 'fela-utils';
import cssifyMediaQueryRules from './cssifyMediaQueryRules';
export default function renderToString(renderer) {
var _clusterCache = 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 + cssifySupportRules(supportRules);
var mediaKeys = Object.keys(_extends({}, supportMediaRules, mediaRules));
return arrayReduce(mediaKeys, function (css, query) {
var mediaCSS = mediaRules[query] || '';
var supportCSS = cssifySupportRules(supportMediaRules[query] || {});
return css + cssifyMediaQueryRules(query, mediaCSS + supportCSS);
}, basicCSS);
}