UNPKG

tiddlywiki-plugin-dev

Version:

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

78 lines (77 loc) 2.18 kB
import { createQueuedWatchHandler } from "./dev-watch.js"; const devWritePlugins = [ "plugins/tiddlywiki/filesystem", "plugins/tiddlywiki/tiddlyweb" ]; const createDevRefreshHandler = ({ renderListenerScript, nextGeneration, writeWiki, rebuildPlugins, createWiki, startServer, notifyRefresh, reportError }) => createQueuedWatchHandler({ runBatch: async (changedPaths) => { const batchStart = Date.now(); const fileList = changedPaths.filter(Boolean); console.log( ` [Modern.TiddlyDev] [refresh] Refresh started - ${fileList.length} file(s) changed` ); if (fileList.length > 0) { fileList.forEach((f) => { console.log(` - ${f}`); }); } const plugins = await rebuildPlugins(changedPaths); const rebuildMs = Date.now() - batchStart; console.log( `[Modern.TiddlyDev] [refresh] Plugins rebuilt in ${rebuildMs}ms` ); if (plugins.length === 0) { const totalMs = Date.now() - batchStart; console.log( `[Modern.TiddlyDev] [refresh] No plugin changes — skipping server restart (${totalMs}ms total)` ); notifyRefresh(); return; } const wiki = createWiki(); const generation = nextGeneration(); wiki.preloadTiddler({ title: "$:/Modern.TiddlyDev/devWebsocket/listener", text: renderListenerScript(generation), type: "application/javascript", "module-type": "startup" }); if (!writeWiki) { wiki.preloadTiddler({ title: "$:/config/SyncFilter", text: "" }); } wiki.preloadTiddlerArray(plugins); if (writeWiki) { wiki.appendExtraPlugins(devWritePlugins); } const started = await startServer(wiki, changedPaths, generation); if (started) { const totalMs = Date.now() - batchStart; console.log( `[Modern.TiddlyDev] [refresh] Server restarted in ${totalMs}ms total` ); notifyRefresh(); } else { console.error( `[Modern.TiddlyDev] [refresh] Server failed to start after ${Date.now() - batchStart}ms` ); } }, onError: reportError }); export { createDevRefreshHandler, devWritePlugins };