vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
61 lines (58 loc) • 7.74 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import { resolve } from 'node:path';
function resolveModuleFromManifest({
moduleId,
normalizer,
manifest,
moduleBase,
preserveModulesRoot,
projectRoot,
buildOutDir,
buildServerDir,
verbose = false,
logger
}) {
let normalizedKey = moduleId;
let normalizedValue = moduleId;
if (normalizer) {
[normalizedKey, normalizedValue] = normalizer(moduleId);
}
let manifestEntry = manifest[normalizedValue] ?? manifest[normalizedKey];
if (!manifestEntry && preserveModulesRoot === false && normalizedValue.startsWith(moduleBase + "/")) {
const withoutModuleBase = normalizedValue.replace(
moduleBase + "/",
""
);
manifestEntry = manifest[withoutModuleBase];
if (verbose && manifestEntry) {
logger?.info(
`[resolveModuleFromManifest] Found entry after removing moduleBase: ${withoutModuleBase} -> ${manifestEntry.file}`
);
}
}
let builtModuleId = moduleId;
if (manifestEntry && manifestEntry.file) {
builtModuleId = manifestEntry.file;
if (verbose) {
logger?.info(
`[resolveModuleFromManifest] Resolved ${moduleId} -> ${builtModuleId} via manifest`
);
}
} else if (verbose) {
logger?.warn(
`[resolveModuleFromManifest] No manifest entry found for ${moduleId} (tried keys: ${normalizedValue}, ${normalizedKey}), using moduleId directly`
);
}
const resolvedPath = manifestEntry ? resolve(projectRoot, buildOutDir, buildServerDir, manifestEntry.file) : null;
return {
manifestEntry,
resolvedPath,
builtModuleId
};
}
export { resolveModuleFromManifest };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZU1vZHVsZUZyb21NYW5pZmVzdC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL2hlbHBlcnMvcmVzb2x2ZU1vZHVsZUZyb21NYW5pZmVzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBMb2dnZXIgfSBmcm9tIFwidml0ZVwiO1xuaW1wb3J0IHR5cGUgeyBJbnB1dE5vcm1hbGl6ZXIgfSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcblxuLyoqXG4gKiBTaGFyZWQgdXRpbGl0eSBmb3IgcmVzb2x2aW5nIG1vZHVsZSBwYXRocyBmcm9tIG1hbmlmZXN0cy5cbiAqIFxuICogVGhpcyBoYW5kbGVzIHRoZSBjb21tb24gcGF0dGVybiBvZjpcbiAqIDEuIE5vcm1hbGl6aW5nIHRoZSBtb2R1bGVJZCB1c2luZyB0aGUgbm9ybWFsaXplciAoaWYgcHJvdmlkZWQpXG4gKiAyLiBMb29raW5nIHVwIGEgc291cmNlIHBhdGggaW4gYSBtYW5pZmVzdCB0byBnZXQgdGhlIGJ1aWx0IGZpbGUgcGF0aFxuICogMy4gSGFuZGxpbmcgZGlmZmVyZW50IG1hbmlmZXN0IGtleSBmb3JtYXRzICh3aXRoL3dpdGhvdXQgbW9kdWxlQmFzZSBwcmVmaXgpXG4gKiA0LiBSZXNvbHZpbmcgdGhlIGZ1bGwgZmlsZSBwYXRoIGZvciBsb2FkaW5nXG4gKiBcbiAqIFVzZWQgYnkgYm90aDpcbiAqIC0gUlNDIHdvcmtlciBsb2FkZXIgKGNyZWF0ZVJzY1dvcmtlckxvYWRlcilcbiAqIC0gQnVpbGQgbG9hZGVyIChjcmVhdGVCdWlsZExvYWRlci5zZXJ2ZXIpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTW9kdWxlRnJvbU1hbmlmZXN0KHtcbiAgbW9kdWxlSWQsXG4gIG5vcm1hbGl6ZXIsXG4gIG1hbmlmZXN0LFxuICBtb2R1bGVCYXNlLFxuICBwcmVzZXJ2ZU1vZHVsZXNSb290LFxuICBwcm9qZWN0Um9vdCxcbiAgYnVpbGRPdXREaXIsXG4gIGJ1aWxkU2VydmVyRGlyLFxuICB2ZXJib3NlID0gZmFsc2UsXG4gIGxvZ2dlcixcbn06IHtcbiAgbW9kdWxlSWQ6IHN0cmluZztcbiAgbm9ybWFsaXplcj86IElucHV0Tm9ybWFsaXplcjtcbiAgbWFuaWZlc3Q6IFJlY29yZDxzdHJpbmcsIHsgZmlsZTogc3RyaW5nIH0gfCB1bmRlZmluZWQ+O1xuICBtb2R1bGVCYXNlOiBzdHJpbmc7XG4gIHByZXNlcnZlTW9kdWxlc1Jvb3Q/OiBib29sZWFuO1xuICBwcm9qZWN0Um9vdDogc3RyaW5nO1xuICBidWlsZE91dERpcjogc3RyaW5nO1xuICBidWlsZFNlcnZlckRpcjogc3RyaW5nO1xuICB2ZXJib3NlPzogYm9vbGVhbjtcbiAgbG9nZ2VyPzogTG9nZ2VyO1xufSk6IHtcbiAgbWFuaWZlc3RFbnRyeTogeyBmaWxlOiBzdHJpbmcgfSB8IHVuZGVmaW5lZDtcbiAgcmVzb2x2ZWRQYXRoOiBzdHJpbmcgfCBudWxsO1xuICBidWlsdE1vZHVsZUlkOiBzdHJpbmc7XG59IHtcbiAgLy8gTm9ybWFsaXplIHRoZSBtb2R1bGVJZCB1c2luZyB0aGUgbm9ybWFsaXplciAoc2FtZSBsb2dpYyBhcyBidWlsZExvYWRlcilcbiAgbGV0IG5vcm1hbGl6ZWRLZXkgPSBtb2R1bGVJZDtcbiAgbGV0IG5vcm1hbGl6ZWRWYWx1ZSA9IG1vZHVsZUlkO1xuICBpZiAobm9ybWFsaXplcikge1xuICAgIFtub3JtYWxpemVkS2V5LCBub3JtYWxpemVkVmFsdWVdID0gbm9ybWFsaXplcihtb2R1bGVJZCk7XG4gIH1cbiAgLy8gVHJ5IHRvIGZpbmQgbWFuaWZlc3QgZW50cnkgdXNpbmcgbm9ybWFsaXplZCBrZXlzXG4gIGxldCBtYW5pZmVzdEVudHJ5ID0gbWFuaWZlc3Rbbm9ybWFsaXplZFZhbHVlXSA/PyBtYW5pZmVzdFtub3JtYWxpemVkS2V5XTtcblxuICAvLyBJZiBub3QgZm91bmQgYW5kIHByZXNlcnZlTW9kdWxlc1Jvb3QgaXMgZmFsc2UsIHRyeSB3aXRoIHRoZSBtb2R1bGVCYXNlIHByZWZpeCByZW1vdmVkXG4gIGlmIChcbiAgICAhbWFuaWZlc3RFbnRyeSAmJlxuICAgIHByZXNlcnZlTW9kdWxlc1Jvb3QgPT09IGZhbHNlICYmXG4gICAgbm9ybWFsaXplZFZhbHVlLnN0YXJ0c1dpdGgobW9kdWxlQmFzZSArIFwiL1wiKVxuICApIHtcbiAgICBjb25zdCB3aXRob3V0TW9kdWxlQmFzZSA9IG5vcm1hbGl6ZWRWYWx1ZS5yZXBsYWNlKFxuICAgICAgbW9kdWxlQmFzZSArIFwiL1wiLFxuICAgICAgXCJcIlxuICAgICk7XG4gICAgbWFuaWZlc3RFbnRyeSA9IG1hbmlmZXN0W3dpdGhvdXRNb2R1bGVCYXNlXTtcbiAgICBcbiAgICBpZiAodmVyYm9zZSAmJiBtYW5pZmVzdEVudHJ5KSB7XG4gICAgICBsb2dnZXI/LmluZm8oXG4gICAgICAgIGBbcmVzb2x2ZU1vZHVsZUZyb21NYW5pZmVzdF0gRm91bmQgZW50cnkgYWZ0ZXIgcmVtb3ZpbmcgbW9kdWxlQmFzZTogJHt3aXRob3V0TW9kdWxlQmFzZX0gLT4gJHttYW5pZmVzdEVudHJ5LmZpbGV9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSBmb3VuZCBhIG1hbmlmZXN0IGVudHJ5LCB1c2UgaXRzIGZpbGUgcGF0aFxuICBsZXQgYnVpbHRNb2R1bGVJZCA9IG1vZHVsZUlkO1xuICBpZiAobWFuaWZlc3RFbnRyeSAmJiBtYW5pZmVzdEVudHJ5LmZpbGUpIHtcbiAgICBidWlsdE1vZHVsZUlkID0gbWFuaWZlc3RFbnRyeS5maWxlO1xuICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICBsb2dnZXI/LmluZm8oXG4gICAgICAgIGBbcmVzb2x2ZU1vZHVsZUZyb21NYW5pZmVzdF0gUmVzb2x2ZWQgJHttb2R1bGVJZH0gLT4gJHtidWlsdE1vZHVsZUlkfSB2aWEgbWFuaWZlc3RgXG4gICAgICApO1xuICAgIH1cbiAgfSBlbHNlIGlmICh2ZXJib3NlKSB7XG4gICAgbG9nZ2VyPy53YXJuKFxuICAgICAgYFtyZXNvbHZlTW9kdWxlRnJvbU1hbmlmZXN0XSBObyBtYW5pZmVzdCBlbnRyeSBmb3VuZCBmb3IgJHttb2R1bGVJZH0gKHRyaWVkIGtleXM6ICR7bm9ybWFsaXplZFZhbHVlfSwgJHtub3JtYWxpemVkS2V5fSksIHVzaW5nIG1vZHVsZUlkIGRpcmVjdGx5YFxuICAgICk7XG4gIH1cblxuICAvLyBDb25zdHJ1Y3QgdGhlIGZ1bGwgcmVzb2x2ZWQgcGF0aFxuICBjb25zdCByZXNvbHZlZFBhdGggPSBtYW5pZmVzdEVudHJ5XG4gICAgPyByZXNvbHZlKHByb2plY3RSb290LCBidWlsZE91dERpciwgYnVpbGRTZXJ2ZXJEaXIsIG1hbmlmZXN0RW50cnkuZmlsZSlcbiAgICA6IG51bGw7XG5cbiAgcmV0dXJuIHtcbiAgICBtYW5pZmVzdEVudHJ5LFxuICAgIHJlc29sdmVkUGF0aCxcbiAgICBidWlsdE1vZHVsZUlkLFxuICB9O1xufVxuXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQWlCTyxTQUFTLHlCQUEwQixDQUFBO0FBQUEsRUFDeEMsUUFBQTtBQUFBLEVBQ0EsVUFBQTtBQUFBLEVBQ0EsUUFBQTtBQUFBLEVBQ0EsVUFBQTtBQUFBLEVBQ0EsbUJBQUE7QUFBQSxFQUNBLFdBQUE7QUFBQSxFQUNBLFdBQUE7QUFBQSxFQUNBLGNBQUE7QUFBQSxFQUNBLE9BQVUsR0FBQSxLQUFBO0FBQUEsRUFDVjtBQUNGLENBZUUsRUFBQTtBQUVBLEVBQUEsSUFBSSxhQUFnQixHQUFBLFFBQUE7QUFDcEIsRUFBQSxJQUFJLGVBQWtCLEdBQUEsUUFBQTtBQUN0QixFQUFBLElBQUksVUFBWSxFQUFBO0FBQ2QsSUFBQSxDQUFDLGFBQWUsRUFBQSxlQUFlLENBQUksR0FBQSxVQUFBLENBQVcsUUFBUSxDQUFBO0FBQUE7QUFHeEQsRUFBQSxJQUFJLGFBQWdCLEdBQUEsUUFBQSxDQUFTLGVBQWUsQ0FBQSxJQUFLLFNBQVMsYUFBYSxDQUFBO0FBR3ZFLEVBQ0UsSUFBQSxDQUFDLGlCQUNELG1CQUF3QixLQUFBLEtBQUEsSUFDeEIsZ0JBQWdCLFVBQVcsQ0FBQSxVQUFBLEdBQWEsR0FBRyxDQUMzQyxFQUFBO0FBQ0EsSUFBQSxNQUFNLG9CQUFvQixlQUFnQixDQUFBLE9BQUE7QUFBQSxNQUN4QyxVQUFhLEdBQUEsR0FBQTtBQUFBLE1BQ2I7QUFBQSxLQUNGO0FBQ0EsSUFBQSxhQUFBLEdBQWdCLFNBQVMsaUJBQWlCLENBQUE7QUFFMUMsSUFBQSxJQUFJLFdBQVcsYUFBZSxFQUFBO0FBQzVCLE1BQVEsTUFBQSxFQUFBLElBQUE7QUFBQSxRQUNOLENBQXNFLG1FQUFBLEVBQUEsaUJBQWlCLENBQU8sSUFBQSxFQUFBLGFBQUEsQ0FBYyxJQUFJLENBQUE7QUFBQSxPQUNsSDtBQUFBO0FBQ0Y7QUFJRixFQUFBLElBQUksYUFBZ0IsR0FBQSxRQUFBO0FBQ3BCLEVBQUksSUFBQSxhQUFBLElBQWlCLGNBQWMsSUFBTSxFQUFBO0FBQ3ZDLElBQUEsYUFBQSxHQUFnQixhQUFjLENBQUEsSUFBQTtBQUM5QixJQUFBLElBQUksT0FBUyxFQUFBO0FBQ1gsTUFBUSxNQUFBLEVBQUEsSUFBQTtBQUFBLFFBQ04sQ0FBQSxxQ0FBQSxFQUF3QyxRQUFRLENBQUEsSUFBQSxFQUFPLGFBQWEsQ0FBQSxhQUFBO0FBQUEsT0FDdEU7QUFBQTtBQUNGLGFBQ1MsT0FBUyxFQUFBO0FBQ2xCLElBQVEsTUFBQSxFQUFBLElBQUE7QUFBQSxNQUNOLENBQTJELHdEQUFBLEVBQUEsUUFBUSxDQUFpQixjQUFBLEVBQUEsZUFBZSxLQUFLLGFBQWEsQ0FBQSwwQkFBQTtBQUFBLEtBQ3ZIO0FBQUE7QUFJRixFQUFNLE1BQUEsWUFBQSxHQUFlLGdCQUNqQixPQUFRLENBQUEsV0FBQSxFQUFhLGFBQWEsY0FBZ0IsRUFBQSxhQUFBLENBQWMsSUFBSSxDQUNwRSxHQUFBLElBQUE7QUFFSixFQUFPLE9BQUE7QUFBQSxJQUNMLGFBQUE7QUFBQSxJQUNBLFlBQUE7QUFBQSxJQUNBO0FBQUEsR0FDRjtBQUNGOzs7OyJ9