UNPKG

panel

Version:

Web Components with Virtual DOM: lightweight composable web apps

31 lines (26 loc) 946 B
/* eslint-env commonjs */ const loaderUtils = require(`loader-utils`); const helpers = require(`./loader-helpers`); // Used in non-HMR mode, do nothing module.exports = (source) => source; module.exports.pitch = function (request) { const options = helpers.getOptions(this); const moduleId = loaderUtils.stringifyRequest(this, `!!${request}`); const elemName = helpers.getElemName(this.resourcePath, options); if (!options.hot) { return `module.exports = require(${moduleId});`; } return ` module.hot.accept(${moduleId}, function() { const newStyle = require(${moduleId}); const updatePanelElems = require('panel/hot/update-panel-elems'); updatePanelElems('${elemName}', elem => { if (elem.getConfig('useShadowDom')) { elem.applyStaticStyle(newStyle.toString(), {ignoreCache: true}); return true; } }); }); module.exports = require(${moduleId}); `; };