UNPKG

vue-runtime-helpers

Version:
63 lines (49 loc) 1.81 kB
'use strict'; function createInjectorSSR(context) { if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__; } if (!context) return function () {}; if (!('styles' in context)) { context._styles = context._styles || {}; Object.defineProperty(context, 'styles', { enumerable: true, get: function get() { return context._renderStyles(context._styles); } }); context._renderStyles = context._renderStyles || renderStyles; } return function (id, style) { return addStyle(id, style, context); }; } function addStyle(id, css, context) { var group = process.env.NODE_ENV === 'production' ? css.media || 'default' : id; var style = context._styles[group] || (context._styles[group] = { ids: [], css: '' }); if (!style.ids.includes(id)) { style.media = css.media; style.ids.push(id); var code = css.source; if (process.env.NODE_ENV !== 'production' && css.map) { // https://developer.chrome.com/devtools/docs/javascript-debugging // this makes source maps inside style tags work properly in Chrome code += '\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875 code += '\n/*# sourceMappingURL=data:application/json;base64,' + Buffer.from(unescape(encodeURIComponent(JSON.stringify(css.map)))).toString('base64') + ' */'; } style.css += code + '\n'; } } function renderStyles(styles) { var css = ''; for (var key in styles) { var style = styles[key]; css += '<style data-vue-ssr-id="' + Array.from(style.ids).join(' ') + '"' + (style.media ? ' media="' + style.media + '"' : '') + '>' + style.css + '</style>'; } return css; } module.exports = createInjectorSSR; //# sourceMappingURL=server.js.map