UNPKG

rwsdk

Version:

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

42 lines (41 loc) 2.22 kB
export const diagnosticAssetGraphPlugin = ({ rootDir, }) => ({ name: "rwsdk:diagnostic-asset-graph", apply: "build", async buildEnd() { if (this.environment.name === "worker" && process.env.RWSDK_BUILD_PASS === "worker") { console.log("\n=== Asset Graph Diagnostic ==="); const moduleIds = Array.from(this.getModuleIds()); console.log(`Total modules: ${moduleIds.length}`); const urlImportedModules = new Set(); const publicAssets = new Set(); for (const moduleId of moduleIds) { const moduleInfo = this.getModuleInfo(moduleId); if (moduleInfo) { const isImportedByUrl = moduleInfo.importers.some((importer) => importer.includes("?url")) || moduleId.includes("?url"); if (isImportedByUrl) { urlImportedModules.add(moduleId); console.log(`\nModule imported with ?url: ${moduleId}`); console.log(` Importers: ${moduleInfo.importers.join(", ")}`); if (moduleInfo.importedIds) { console.log(` Imports: ${moduleInfo.importedIds.join(", ")}`); for (const importedId of moduleInfo.importedIds) { publicAssets.add(importedId); } } } if (moduleInfo.importers.some((importer) => importer.includes("Document.tsx"))) { console.log(`\nModule imported by Document.tsx: ${moduleId}`); console.log(` Importers: ${moduleInfo.importers.join(", ")}`); if (moduleInfo.importedIds) { console.log(` Imports: ${moduleInfo.importedIds.join(", ")}`); } } } } console.log(`\nTotal modules imported with ?url: ${urlImportedModules.size}`); console.log(`Total transitive dependencies: ${publicAssets.size}`); console.log("\n=== End Asset Graph Diagnostic ===\n"); } }, });