vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
49 lines (46 loc) • 5.77 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import { createLogger } from 'vite';
import { workerData } from 'node:worker_threads';
import { createSharedLoader } from '../../helpers/createSharedLoader.js';
import { getRunner } from './runnerInstance.js';
const createRscWorkerLoader = ({
verbose = false,
logger = createLogger(workerData.resolvedConfig?.logLevel ?? "info", {
prefix: "vite:plugin-react-server/worker/rsc"
}),
projectRoot,
build,
manifest
} = {}) => {
const isBuildMode = workerData.configEnv?.command === "build";
const isServeMode = !isBuildMode;
const effectiveProjectRoot = projectRoot || workerData.userOptions?.projectRoot || process.cwd();
return async (id) => {
const [moduleID, exportName] = id.split("#");
return await createSharedLoader({
moduleId: moduleID,
exportName,
verbose,
logger,
resolveVirtual: true,
manifest,
normalizer: workerData.userOptions?.normalizer,
moduleBase: workerData.userOptions?.moduleBase || "src",
preserveModulesRoot: workerData.userOptions?.build?.preserveModulesRoot,
projectRoot: effectiveProjectRoot,
buildOutDir: build?.outDir || "dist",
buildServerDir: build?.server || "server",
isBuildMode,
isServeMode,
effectiveProjectRoot,
build,
moduleRunner: isServeMode ? getRunner() : null
});
};
};
export { createRscWorkerLoader };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlUnNjV29ya2VyTG9hZGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wbHVnaW4vd29ya2VyL3JzYy9jcmVhdGVSc2NXb3JrZXJMb2FkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTG9nZ2VyLCB0eXBlIExvZ2dlciB9IGZyb20gXCJ2aXRlXCI7XG5pbXBvcnQgeyB3b3JrZXJEYXRhIH0gZnJvbSBcIm5vZGU6d29ya2VyX3RocmVhZHNcIjtcbmltcG9ydCB0eXBlIHsgR2VuZXJpY01vZHVsZUxvYWRlciB9IGZyb20gXCIuLi8uLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlU2hhcmVkTG9hZGVyIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvY3JlYXRlU2hhcmVkTG9hZGVyLmpzXCI7XG5pbXBvcnQgeyBnZXRSdW5uZXIgfSBmcm9tIFwiLi9ydW5uZXJJbnN0YW5jZS5qc1wiO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBHZW5lcmljTW9kdWxlTG9hZGVyIGZvciB0aGUgUlNDIHdvcmtlci5cbiAqIFVzZXMgY3JlYXRlU2hhcmVkTG9hZGVyIGZvciB2aXJ0dWFsIG1vZHVsZXMsIG1hbmlmZXN0IHJlc29sdXRpb24sIGFuZCBpbXBvcnRzLlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlUnNjV29ya2VyTG9hZGVyID0gKHtcbiAgdmVyYm9zZSA9IGZhbHNlLFxuICBsb2dnZXIgPSBjcmVhdGVMb2dnZXIod29ya2VyRGF0YS5yZXNvbHZlZENvbmZpZz8ubG9nTGV2ZWwgPz8gXCJpbmZvXCIsIHtcbiAgICBwcmVmaXg6IFwidml0ZTpwbHVnaW4tcmVhY3Qtc2VydmVyL3dvcmtlci9yc2NcIixcbiAgfSksXG4gIHByb2plY3RSb290LFxuICBidWlsZCxcbiAgbWFuaWZlc3QsXG59OiB7XG4gIHZlcmJvc2U/OiBib29sZWFuO1xuICBsb2dnZXI/OiBMb2dnZXI7XG4gIHByb2plY3RSb290Pzogc3RyaW5nO1xuICBidWlsZD86IHtcbiAgICBzZXJ2ZXI/OiBzdHJpbmc7XG4gICAgY2xpZW50Pzogc3RyaW5nO1xuICAgIHN0YXRpYz86IHN0cmluZztcbiAgICBvdXREaXI/OiBzdHJpbmc7XG4gIH07XG4gIG1hbmlmZXN0PzogUmVjb3JkPHN0cmluZywgYW55Pjtcbn0gPSB7fSk6IEdlbmVyaWNNb2R1bGVMb2FkZXIgPT4ge1xuICBjb25zdCBpc0J1aWxkTW9kZSA9IHdvcmtlckRhdGEuY29uZmlnRW52Py5jb21tYW5kID09PSBcImJ1aWxkXCI7XG4gIGNvbnN0IGlzU2VydmVNb2RlID0gIWlzQnVpbGRNb2RlO1xuICBjb25zdCBlZmZlY3RpdmVQcm9qZWN0Um9vdCA9XG4gICAgcHJvamVjdFJvb3QgfHwgd29ya2VyRGF0YS51c2VyT3B0aW9ucz8ucHJvamVjdFJvb3QgfHwgcHJvY2Vzcy5jd2QoKTtcblxuICByZXR1cm4gYXN5bmMgKGlkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBbbW9kdWxlSUQsIGV4cG9ydE5hbWVdID0gaWQuc3BsaXQoXCIjXCIpO1xuXG4gICAgcmV0dXJuIGF3YWl0IGNyZWF0ZVNoYXJlZExvYWRlcih7XG4gICAgICBtb2R1bGVJZDogbW9kdWxlSUQsXG4gICAgICBleHBvcnROYW1lLFxuICAgICAgdmVyYm9zZSxcbiAgICAgIGxvZ2dlcixcbiAgICAgIHJlc29sdmVWaXJ0dWFsOiB0cnVlLFxuICAgICAgbWFuaWZlc3Q6IG1hbmlmZXN0IGFzIFJlY29yZDxzdHJpbmcsIHsgZmlsZTogc3RyaW5nIH0gfCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkLFxuICAgICAgbm9ybWFsaXplcjogd29ya2VyRGF0YS51c2VyT3B0aW9ucz8ubm9ybWFsaXplcixcbiAgICAgIG1vZHVsZUJhc2U6IHdvcmtlckRhdGEudXNlck9wdGlvbnM/Lm1vZHVsZUJhc2UgfHwgXCJzcmNcIixcbiAgICAgIHByZXNlcnZlTW9kdWxlc1Jvb3Q6IHdvcmtlckRhdGEudXNlck9wdGlvbnM/LmJ1aWxkPy5wcmVzZXJ2ZU1vZHVsZXNSb290LFxuICAgICAgcHJvamVjdFJvb3Q6IGVmZmVjdGl2ZVByb2plY3RSb290LFxuICAgICAgYnVpbGRPdXREaXI6IGJ1aWxkPy5vdXREaXIgfHwgXCJkaXN0XCIsXG4gICAgICBidWlsZFNlcnZlckRpcjogYnVpbGQ/LnNlcnZlciB8fCBcInNlcnZlclwiLFxuICAgICAgaXNCdWlsZE1vZGUsXG4gICAgICBpc1NlcnZlTW9kZSxcbiAgICAgIGVmZmVjdGl2ZVByb2plY3RSb290LFxuICAgICAgYnVpbGQsXG4gICAgICBtb2R1bGVSdW5uZXI6IGlzU2VydmVNb2RlID8gZ2V0UnVubmVyKCkgOiBudWxsLFxuICAgIH0pO1xuICB9O1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBVU8sTUFBTSx3QkFBd0IsQ0FBQztBQUFBLEVBQ3BDLE9BQVUsR0FBQSxLQUFBO0FBQUEsRUFDVixNQUFTLEdBQUEsWUFBQSxDQUFhLFVBQVcsQ0FBQSxjQUFBLEVBQWdCLFlBQVksTUFBUSxFQUFBO0FBQUEsSUFDbkUsTUFBUSxFQUFBO0FBQUEsR0FDVCxDQUFBO0FBQUEsRUFDRCxXQUFBO0FBQUEsRUFDQSxLQUFBO0FBQUEsRUFDQTtBQUNGLENBQUEsR0FXSSxFQUE0QixLQUFBO0FBQzlCLEVBQU0sTUFBQSxXQUFBLEdBQWMsVUFBVyxDQUFBLFNBQUEsRUFBVyxPQUFZLEtBQUEsT0FBQTtBQUN0RCxFQUFBLE1BQU0sY0FBYyxDQUFDLFdBQUE7QUFDckIsRUFBQSxNQUFNLHVCQUNKLFdBQWUsSUFBQSxVQUFBLENBQVcsV0FBYSxFQUFBLFdBQUEsSUFBZSxRQUFRLEdBQUksRUFBQTtBQUVwRSxFQUFBLE9BQU8sT0FBTyxFQUFlLEtBQUE7QUFDM0IsSUFBQSxNQUFNLENBQUMsUUFBVSxFQUFBLFVBQVUsQ0FBSSxHQUFBLEVBQUEsQ0FBRyxNQUFNLEdBQUcsQ0FBQTtBQUUzQyxJQUFBLE9BQU8sTUFBTSxrQkFBbUIsQ0FBQTtBQUFBLE1BQzlCLFFBQVUsRUFBQSxRQUFBO0FBQUEsTUFDVixVQUFBO0FBQUEsTUFDQSxPQUFBO0FBQUEsTUFDQSxNQUFBO0FBQUEsTUFDQSxjQUFnQixFQUFBLElBQUE7QUFBQSxNQUNoQixRQUFBO0FBQUEsTUFDQSxVQUFBLEVBQVksV0FBVyxXQUFhLEVBQUEsVUFBQTtBQUFBLE1BQ3BDLFVBQUEsRUFBWSxVQUFXLENBQUEsV0FBQSxFQUFhLFVBQWMsSUFBQSxLQUFBO0FBQUEsTUFDbEQsbUJBQUEsRUFBcUIsVUFBVyxDQUFBLFdBQUEsRUFBYSxLQUFPLEVBQUEsbUJBQUE7QUFBQSxNQUNwRCxXQUFhLEVBQUEsb0JBQUE7QUFBQSxNQUNiLFdBQUEsRUFBYSxPQUFPLE1BQVUsSUFBQSxNQUFBO0FBQUEsTUFDOUIsY0FBQSxFQUFnQixPQUFPLE1BQVUsSUFBQSxRQUFBO0FBQUEsTUFDakMsV0FBQTtBQUFBLE1BQ0EsV0FBQTtBQUFBLE1BQ0Esb0JBQUE7QUFBQSxNQUNBLEtBQUE7QUFBQSxNQUNBLFlBQUEsRUFBYyxXQUFjLEdBQUEsU0FBQSxFQUFjLEdBQUE7QUFBQSxLQUMzQyxDQUFBO0FBQUEsR0FDSDtBQUNGOzs7OyJ9