UNPKG

aemfed

Version:

Upload front-end changes into AEM, refresh relevant resources in the page and get instant notifications from the error.log, all for easier and faster development.

63 lines (62 loc) 2.4 kB
"use strict"; ((window, bs) => { const PLUGIN_NAME = "QR Code"; if (bs) { if (!bs.qr) { bs.qr = printQrCode; } if (!window.qr) { window.qr = printQrCode; } const socket = bs.socket; socket.on("connection", options => { const pluginOptions = getPluginOptions(options); if (pluginOptions && pluginOptions.onload) { printQrCode(); } else { console.log(`Show external QR code for current url using 'qr()' or '___browserSync___.qr()'`); } }); function printQrCode() { if (!window.qrcodeTerminal) { console.error("qrcode-terminal not yet loaded"); return; } const href = getExternalUrl(); qrcodeTerminal.generate(href, { small: true }, (qrcode) => { const styling = getLogStyling(navigator); console.log(`QR code for ${href}\n%c${qrcode}`, styling); }); } function getExternalUrl() { return window.___browserSync___ ? ___browserSync___.options.urls.external + location.pathname + location.search + location.hash : location.href; } function getLogStyling(navigator) { const isSafari = /Safari/.test(navigator.userAgent) && /Apple Computer, Inc/.test(navigator.vendor); const isEdge = /Edge/.test(navigator.userAgent) && !navigator.vendor; const baseStyling = "font-family: 'Courier New';"; return (baseStyling + (isSafari ? " line-height: 1em;" : isEdge ? " line-height: 1.2em;" : "")); } function getPluginOptions(options) { if (!options || !options.plugins || options.plugins.length === 0) { return; } function isPlugin(possiblePlugin) { const pluginName = possiblePlugin["plugin:name"] || possiblePlugin.module["plugin:name"]; return pluginName === PLUGIN_NAME; } const plugin = options.plugins.find(isPlugin); if (plugin) { return plugin.options || plugin; } } } })(window, window.___browserSync___);