UNPKG

next

Version:

The React Framework

76 lines (75 loc) 3.66 kB
import { getAppLoader } from '../entries'; import { spans as webpackCompilationSpans } from './plugins/profiling-plugin'; import { compilationSpans as rspackCompilationSpans } from './plugins/rspack-profiling-plugin'; export function traverseModules(compilation, callback, filterChunkGroup) { compilation.chunkGroups.forEach((chunkGroup)=>{ if (filterChunkGroup && !filterChunkGroup(chunkGroup)) { return; } chunkGroup.chunks.forEach((chunk)=>{ const chunkModules = compilation.chunkGraph.getChunkModulesIterable(chunk); for (const mod of chunkModules){ var _compilation_chunkGraph_getModuleId; const modId = (_compilation_chunkGraph_getModuleId = compilation.chunkGraph.getModuleId(mod)) == null ? void 0 : _compilation_chunkGraph_getModuleId.toString(); if (modId) callback(mod, chunk, chunkGroup, modId); const anyModule = mod; if (anyModule.modules) { for (const subMod of anyModule.modules)if (modId) callback(subMod, chunk, chunkGroup, modId); } } }); }); } // Loop over all the entry modules. export function forEachEntryModule(compilation, callback) { for (const [name, entry] of compilation.entries.entries()){ var _entry_dependencies; // Skip for entries under pages/ if (name.startsWith('pages/')) { continue; } // Check if the page entry is a server component or not. const entryDependency = (_entry_dependencies = entry.dependencies) == null ? void 0 : _entry_dependencies[0]; // Ensure only next-app-loader entries are handled. if (!entryDependency || !entryDependency.request) continue; const request = entryDependency.request; if (!request.startsWith('next-edge-ssr-loader?') && !request.startsWith('next-edge-app-route-loader?') && !request.startsWith(`${getAppLoader()}?`)) continue; let entryModule = compilation.moduleGraph.getResolvedModule(entryDependency); if (request.startsWith('next-edge-ssr-loader?') || request.startsWith('next-edge-app-route-loader?')) { entryModule.dependencies.forEach((dependency)=>{ const modRequest = dependency.request; if (modRequest == null ? void 0 : modRequest.includes(getAppLoader())) { entryModule = compilation.moduleGraph.getResolvedModule(dependency); } }); } callback({ name, entryModule }); } } export function formatBarrelOptimizedResource(resource, matchResource) { return `${resource}@${matchResource}`; } export function getModuleReferencesInOrder(module, moduleGraph) { if ('getOutgoingConnectionsInOrder' in moduleGraph && typeof moduleGraph.getOutgoingConnectionsInOrder === 'function') { return moduleGraph.getOutgoingConnectionsInOrder(module); } const connections = []; for (const connection of moduleGraph.getOutgoingConnections(module)){ if (connection.dependency && connection.module) { connections.push({ connection, index: moduleGraph.getParentBlockIndex(connection.dependency) }); } } connections.sort((a, b)=>a.index - b.index); return connections.map((c)=>c.connection); } export function getCompilationSpan(compilation) { const compilationSpans = process.env.NEXT_RSPACK ? rspackCompilationSpans : webpackCompilationSpans; return compilationSpans.get(compilation); } //# sourceMappingURL=utils.js.map