UNPKG

@stardust-ui/fela-tools

Version:

Useful tools for working with Fela

28 lines (21 loc) 1.41 kB
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); }