UNPKG

rwsdk

Version:

Build fast, server-driven webapps on Cloudflare with SSR, RSC, and realtime

31 lines (30 loc) 1.14 kB
import debug from "debug"; const log = debug("rwsdk:vite:invalidate-module"); export const invalidateModule = (devServer, environment, target, options = {}, seen = new Set()) => { let moduleNode; if (typeof target === "string") { const id = target; const [rawId, _query] = id.split("?"); moduleNode = devServer?.environments[environment]?.moduleGraph.idToModuleMap.get(rawId); } else { moduleNode = target; } if (moduleNode) { if (seen.has(moduleNode)) { return; } seen.add(moduleNode); devServer.environments[environment]?.moduleGraph.invalidateModule(moduleNode, seen); log("Invalidating module: id=%s, environment=%s", moduleNode.id, environment); if (options.invalidateImportersRecursively) { for (const importer of moduleNode.importers) { invalidateModule(devServer, environment, importer, options, seen); } } } else { log("Module not found: id=%s, environment=%s", typeof target === "string" ? target : target.id, environment); } };