UNPKG

tiddlywiki-plugin-dev

Version:

[![](https://img.shields.io/badge/Join-TiddlyWiki_CN-blue)](https://github.com/tiddly-gittly)

77 lines (76 loc) 2.61 kB
var __getOwnPropNames = Object.getOwnPropertyNames; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var require_devweb_listener = __commonJS({ "src/devweb-listener.js"(exports) { (function() { const moduleExports = exports; moduleExports.name = "devweb-listner"; moduleExports.platforms = ["browser"]; moduleExports.after = ["load-modules"]; moduleExports.synchronous = true; moduleExports.startup = function() { const WS = typeof globalThis !== "undefined" && globalThis.WebSocket || // eslint-disable-next-line no-undef (typeof window !== "undefined" ? window.WebSocket : void 0); if (!WS) { console.error( "[Modern.TiddlyDev]", "Unsupported browser, need WebSocket support" ); return; } const generation = 0; const protocol = document.location.protocol === "https:" ? "wss" : "ws"; const url = protocol + "://" + document.location.host + "/__dev_ws?gen=" + generation; let reconnectDelay = 1e3; const maxReconnectDelay = 1e4; let disposed = false; function connect() { if (disposed) return; const socket = new WS(url); socket.onopen = function() { reconnectDelay = 1e3; console.debug( "[Modern.TiddlyDev]", "Dev WebSocket connected - auto-refresh enabled." ); }; socket.onmessage = function(event) { switch (event.data) { case "bye": { socket.close(); break; } case "refresh": { disposed = true; socket.close(); document.location.reload(); break; } default: break; } }; socket.onclose = function() { if (disposed) return; console.warn( "[Modern.TiddlyDev]", "Dev WebSocket closed - reconnecting in " + Math.round(reconnectDelay / 1e3) + "s..." ); setTimeout(function() { reconnectDelay = Math.min(reconnectDelay * 1.5, maxReconnectDelay); connect(); }, reconnectDelay); }; socket.onerror = function() { }; } connect(); }; })(); } }); export default require_devweb_listener();