UNPKG

vite-plugin-react-server

Version:
81 lines (78 loc) 2.8 kB
/** * vite-plugin-react-server * Copyright (c) Nico Brinkkemper * MIT License */ import { createInputNormalizer } from './inputNormalizer.js'; import { DEFAULT_CONFIG } from '../config/defaults.js'; function getBundleManifest({ pluginContext, bundle, moduleBase, preserveModulesRoot }) { const normalizer = createInputNormalizer({ root: pluginContext.environment.config.root, removeExtension: DEFAULT_CONFIG.FILE_REGEX, preserveModulesRoot: preserveModulesRoot === true ? moduleBase : undefined }); if (!bundle) return {}; const virtualModules = /* @__PURE__ */ new Map(); const bundleManifest = Object.fromEntries( Object.entries(bundle).map(([fileName, chunk]) => { if (chunk.type !== "chunk") return null; const chunkWithFacade = chunk; const moduleId = chunkWithFacade.facadeModuleId || chunkWithFacade.moduleIds[0] || fileName; if (moduleId.includes("commonjsHelpers")) { return [ moduleId, { file: "commonjs-runtime.js", name: "commonjsHelpers", src: moduleId, isEntry: false } ]; } let [normalizedId, sourcePath] = normalizer(moduleId); let finalFileName = fileName; if (moduleId.includes("?")) { const [basePath, query] = moduleId.split("?"); const virtualPath = basePath.includes("node_modules") ? basePath.split("node_modules/")[1] : basePath; const virtualKey = `${virtualPath}?${query}`; if (!virtualModules.has(virtualKey)) { const virtualFileName = `${virtualPath.replace(/\.js$/, "")}.${query}.js`; virtualModules.set(virtualKey, virtualFileName); } finalFileName = virtualModules.get(virtualKey); } if (normalizedId.startsWith("\0")) { normalizedId = normalizedId.slice(1); } if (sourcePath.startsWith("/")) { sourcePath = sourcePath.slice(1); } if (moduleBase && preserveModulesRoot && normalizedId?.startsWith(moduleBase + "/")) { normalizedId = normalizedId.slice(moduleBase.length + 1); } const bundleManifestEntry = [ sourcePath, { file: finalFileName, name: normalizedId, src: sourcePath, isEntry: chunk.isEntry, ...chunk.imports?.length > 0 ? { imports: chunk.imports } : {}, ...chunk.dynamicImports?.length > 0 ? { dynamicImports: chunk.dynamicImports } : {}, ...chunk.viteMetadata?.importedCss?.size ? { css: Array.from(chunk.viteMetadata.importedCss) } : {} } ]; return bundleManifestEntry; }).filter(Boolean) ); return bundleManifest; } export { getBundleManifest }; //# sourceMappingURL=getBundleManifest.js.map