Invalidate based on modulePath (#2086)

* Invalidate based on modulePath

* Adds a changeset
This commit is contained in:
Matthew Phillips 2021-12-02 10:48:08 -05:00 committed by GitHub
parent 0b2650d713
commit 2a2eaadc2f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 7 deletions

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Fixes invalidation of proxy module (inline script modules)

View file

@ -56984,7 +56984,10 @@ const devHtmlHook = async (html, { path: htmlPath, server, originalUrl }) => {
addToHTMLProxyCache(config, url, scriptModuleIndex, contents);
const modulePath = `${config.base + htmlPath.slice(1)}?html-proxy&index=${scriptModuleIndex}.js`;
// invalidate the module so the newly cached contents will be served
server === null || server === void 0 ? void 0 : server.moduleGraph.invalidateId(config.root + modulePath);
const module = server === null || server === void 0 ? void 0 : server.moduleGraph.getModuleById(modulePath);
if (module) {
server === null || server === void 0 ? void 0 : server.moduleGraph.invalidateModule(module);
}
s.overwrite(node.loc.start.offset, node.loc.end.offset, `<script type="module" src="${modulePath}"></script>`);
}
}
@ -57115,12 +57118,6 @@ class ModuleGraph {
mod.ssrTransformResult = null;
invalidateSSRModule(mod, seen);
}
invalidateId(id) {
const mod = this.idToModuleMap.get(id);
if (mod) {
this.invalidateModule(mod);
}
}
invalidateAll() {
const seen = new Set();
this.idToModuleMap.forEach((mod) => {