UNPKG

vite-plugin-qrcode

Version:
55 lines (54 loc) 1.43 kB
// src/index.ts import qr from "qrcode-terminal"; function qrcode(options = {}) { return { name: "vite-plugin-qrcode", apply: "serve", configureServer(server) { const _listen = server.listen; server.listen = function() { var _a; const isRestart = arguments[1] === true; if (!isRestart) { (_a = server.httpServer) == null ? void 0 : _a.on("listening", () => { setTimeout(() => logQrcode(server, options), 0); }); } return _listen.apply(this, arguments); }; }, configurePreviewServer(server) { var _a; if ("resolvedUrls" in server) { (_a = server.httpServer) == null ? void 0 : _a.on("listening", () => { setTimeout(() => logQrcode(server, options), 0); }); } } }; } function logQrcode(server, options) { var _a; let networkUrls = (_a = server.resolvedUrls) == null ? void 0 : _a.network; if (!networkUrls) return; if (options.filter) { networkUrls = networkUrls.filter(options.filter); } if (networkUrls.length === 0) return; const info = server.config.logger.info; info("\n Visit page on mobile:"); for (const url of networkUrls) { qr.generate(url, { small: true }, (result) => { info(` ${cyan(url)} ${result.replace(/\n/g, "\n ")}`); }); } } function cyan(str) { return `\x1B[36m${str}\x1B[0m`; } export { qrcode };