UNPKG

vite-plugin-react-server

Version:
55 lines (52 loc) 1.92 kB
/** * vite-plugin-react-server * Copyright (c) Nico Brinkkemper * MIT License */ import { join } from 'node:path'; import { createInputNormalizer } from '../helpers/inputNormalizer.js'; function createBuildLoader({ root, userConfig: _userConfig, userOptions, pluginContext: _pluginContext, serverManifest, clientManifest }) { const normalizer = createInputNormalizer({ root, preserveModulesRoot: userOptions.build.preserveModulesRoot === true ? userOptions.moduleBase : undefined, removeExtension: true }); return async function buildLoader(id) { const [key, value] = normalizer(id); if (value !== id) { console.warn(`[vite-plugin-react-server] Mismatch in build loader for ${id} !== ${value} (${key})`); } const distDir = userOptions.build.outDir; const manifests = [clientManifest, serverManifest]; for (const n of [0, 1]) { const manifest = manifests[n]; const manifestEntry = manifest[value]; if (!manifestEntry) { continue; } const isClient = userOptions.autoDiscover.clientComponents(id); const isServer = userOptions.autoDiscover.serverFunctions(id); const outDir = isClient ? userOptions.build.client : isServer ? userOptions.build.server : n === 0 ? userOptions.build.client : userOptions.build.server; if (manifestEntry.file.startsWith(`${root}/${distDir}/${outDir}/`)) { return import(manifestEntry.file); } if (manifestEntry.file.startsWith(`${distDir}/`)) { return import(join(root, manifestEntry.file)); } if (manifestEntry.file.startsWith(`${outDir}/`)) { return import(join(root, distDir, outDir, manifestEntry.file)); } return import(join(root, distDir, outDir, manifestEntry.file)); } throw new Error(`Module not found: ${id}`); }; } export { createBuildLoader }; //# sourceMappingURL=createBuildLoader.js.map