vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
37 lines (34 loc) • 5.44 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import { perEnvironmentState } from 'vite';
const signalServerManifestReady = (manifest) => {
};
const createSharedManifestStore = perEnvironmentState(() => ({
server: null,
client: null,
static: null
}));
const manifests = {
server: null,
client: null,
static: null
};
const addManifest = (name) => (manifest) => {
manifests[name] = manifest;
};
const addStaticManifest = addManifest("static");
const addServerManifest = addManifest("server");
const getSharedManifestStore = (context) => createSharedManifestStore(context);
const updateSharedManifest = (context, name, manifest) => {
try {
const sharedState = createSharedManifestStore(context);
sharedState[name] = manifest;
} catch (error) {
console.warn(`[manifests] Could not update shared state for ${name}: ${error}`);
}
};
export { addManifest, addServerManifest, addStaticManifest, getSharedManifestStore, manifests, signalServerManifestReady, updateSharedManifest };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3RzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vYnVuZGxlL21hbmlmZXN0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1hbmlmZXN0IH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB7IHBlckVudmlyb25tZW50U3RhdGUgfSBmcm9tIFwidml0ZVwiO1xuXG4vLyBQcm9taXNlLWJhc2VkIHdhaXQgbWVjaGFuaXNtIGZvciBzZXJ2ZXIgbWFuaWZlc3RcbmxldCBzZXJ2ZXJNYW5pZmVzdFJlc29sdmU6ICgobWFuaWZlc3Q6IE1hbmlmZXN0KSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xubGV0IHNlcnZlck1hbmlmZXN0UHJvbWlzZTogUHJvbWlzZTxNYW5pZmVzdD4gfCBudWxsID0gbnVsbDtcblxuZXhwb3J0IGNvbnN0IHdhaXRGb3JTZXJ2ZXJNYW5pZmVzdCA9ICgpOiBQcm9taXNlPE1hbmlmZXN0PiA9PiB7XG4gIGlmICghc2VydmVyTWFuaWZlc3RQcm9taXNlKSB7XG4gICAgc2VydmVyTWFuaWZlc3RQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHNlcnZlck1hbmlmZXN0UmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHNlcnZlck1hbmlmZXN0UHJvbWlzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaWduYWxTZXJ2ZXJNYW5pZmVzdFJlYWR5ID0gKG1hbmlmZXN0OiBNYW5pZmVzdCk6IHZvaWQgPT4ge1xuICBpZiAoc2VydmVyTWFuaWZlc3RSZXNvbHZlKSB7XG4gICAgc2VydmVyTWFuaWZlc3RSZXNvbHZlKG1hbmlmZXN0KTtcbiAgICBzZXJ2ZXJNYW5pZmVzdFJlc29sdmUgPSBudWxsO1xuICB9XG59O1xuXG4vLyBSZXNldCB0aGUgd2FpdCBtZWNoYW5pc20gKGZvciB0ZXN0IGlzb2xhdGlvbilcbmV4cG9ydCBjb25zdCByZXNldFNlcnZlck1hbmlmZXN0V2FpdCA9ICgpOiB2b2lkID0+IHtcbiAgc2VydmVyTWFuaWZlc3RSZXNvbHZlID0gbnVsbDtcbiAgc2VydmVyTWFuaWZlc3RQcm9taXNlID0gbnVsbDtcbn07XG5cbi8vIFNoYXJlZCBzdGF0ZSBiZXR3ZWVuIGVudmlyb25tZW50cyB1c2luZyBWaXRlJ3MgcGVyRW52aXJvbm1lbnRTdGF0ZSBBUElcbmNvbnN0IGNyZWF0ZVNoYXJlZE1hbmlmZXN0U3RvcmUgPSBwZXJFbnZpcm9ubWVudFN0YXRlPHtcbiAgc2VydmVyOiBNYW5pZmVzdCB8IG51bGw7XG4gIGNsaWVudDogTWFuaWZlc3QgfCBudWxsO1xuICBzdGF0aWM6IE1hbmlmZXN0IHwgbnVsbDtcbn0+KCgpID0+ICh7XG4gIHNlcnZlcjogbnVsbCxcbiAgY2xpZW50OiBudWxsLFxuICBzdGF0aWM6IG51bGwsXG59KSk7XG5cbi8vIExlZ2FjeSBleHBvcnQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbmV4cG9ydCBjb25zdCBtYW5pZmVzdHMgPSB7XG4gIHNlcnZlcjogbnVsbCxcbiAgY2xpZW50OiBudWxsLFxuICBzdGF0aWM6IG51bGwsXG59IGFzIHtcbiAgc2VydmVyOiBNYW5pZmVzdCB8IG51bGw7XG4gIGNsaWVudDogTWFuaWZlc3QgfCBudWxsO1xuICBzdGF0aWM6IE1hbmlmZXN0IHwgbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRNYW5pZmVzdCA9XG4gIChuYW1lOiBcInNlcnZlclwiIHwgXCJjbGllbnRcIiB8IFwic3RhdGljXCIpID0+IChtYW5pZmVzdDogTWFuaWZlc3QpID0+IHtcbiAgICAvLyBVcGRhdGUgdGhlIGxlZ2FjeSBtYW5pZmVzdHNcbiAgICBtYW5pZmVzdHNbbmFtZV0gPSBtYW5pZmVzdDtcbiAgfTtcblxuZXhwb3J0IGNvbnN0IGFkZFN0YXRpY01hbmlmZXN0ID0gYWRkTWFuaWZlc3QoXCJzdGF0aWNcIik7XG5leHBvcnQgY29uc3QgYWRkQ2xpZW50TWFuaWZlc3QgPSBhZGRNYW5pZmVzdChcImNsaWVudFwiKTtcbmV4cG9ydCBjb25zdCBhZGRTZXJ2ZXJNYW5pZmVzdCA9IGFkZE1hbmlmZXN0KFwic2VydmVyXCIpO1xuXG4vLyBOZXcgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzaGFyZWQgc3RhdGUgZGlyZWN0bHkgKHJlcXVpcmVzIHBsdWdpbiBjb250ZXh0KVxuZXhwb3J0IGNvbnN0IGdldFNoYXJlZE1hbmlmZXN0U3RvcmUgPSAoY29udGV4dDogYW55KSA9PiBjcmVhdGVTaGFyZWRNYW5pZmVzdFN0b3JlKGNvbnRleHQpO1xuXG4vLyBOZXcgZnVuY3Rpb24gdG8gdXBkYXRlIHNoYXJlZCBzdGF0ZSAocmVxdWlyZXMgcGx1Z2luIGNvbnRleHQpXG5leHBvcnQgY29uc3QgdXBkYXRlU2hhcmVkTWFuaWZlc3QgPSAoY29udGV4dDogYW55LCBuYW1lOiBcInNlcnZlclwiIHwgXCJjbGllbnRcIiB8IFwic3RhdGljXCIsIG1hbmlmZXN0OiBNYW5pZmVzdCkgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHNoYXJlZFN0YXRlID0gY3JlYXRlU2hhcmVkTWFuaWZlc3RTdG9yZShjb250ZXh0KTtcbiAgICBzaGFyZWRTdGF0ZVtuYW1lXSA9IG1hbmlmZXN0O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUud2FybihgW21hbmlmZXN0c10gQ291bGQgbm90IHVwZGF0ZSBzaGFyZWQgc3RhdGUgZm9yICR7bmFtZX06ICR7ZXJyb3J9YCk7XG4gIH1cbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQWdCYSxNQUFBLHlCQUFBLEdBQTRCLENBQUMsUUFBNkIsS0FBQTtBQUt2RTtBQVNBLE1BQU0seUJBQUEsR0FBNEIsb0JBSS9CLE9BQU87QUFBQSxFQUNSLE1BQVEsRUFBQSxJQUFBO0FBQUEsRUFDUixNQUFRLEVBQUEsSUFBQTtBQUFBLEVBQ1IsTUFBUSxFQUFBO0FBQ1YsQ0FBRSxDQUFBLENBQUE7QUFHSyxNQUFNLFNBQVksR0FBQTtBQUFBLEVBQ3ZCLE1BQVEsRUFBQSxJQUFBO0FBQUEsRUFDUixNQUFRLEVBQUEsSUFBQTtBQUFBLEVBQ1IsTUFBUSxFQUFBO0FBQ1Y7QUFNTyxNQUFNLFdBQ1gsR0FBQSxDQUFDLElBQXlDLEtBQUEsQ0FBQyxRQUF1QixLQUFBO0FBRWhFLEVBQUEsU0FBQSxDQUFVLElBQUksQ0FBSSxHQUFBLFFBQUE7QUFDcEI7QUFFVyxNQUFBLGlCQUFBLEdBQW9CLFlBQVksUUFBUTtBQUV4QyxNQUFBLGlCQUFBLEdBQW9CLFlBQVksUUFBUTtBQUc5QyxNQUFNLHNCQUF5QixHQUFBLENBQUMsT0FBaUIsS0FBQSx5QkFBQSxDQUEwQixPQUFPO0FBR2xGLE1BQU0sb0JBQXVCLEdBQUEsQ0FBQyxPQUFjLEVBQUEsSUFBQSxFQUFzQyxRQUF1QixLQUFBO0FBQzlHLEVBQUksSUFBQTtBQUNGLElBQU0sTUFBQSxXQUFBLEdBQWMsMEJBQTBCLE9BQU8sQ0FBQTtBQUNyRCxJQUFBLFdBQUEsQ0FBWSxJQUFJLENBQUksR0FBQSxRQUFBO0FBQUEsV0FDYixLQUFPLEVBQUE7QUFDZCxJQUFBLE9BQUEsQ0FBUSxJQUFLLENBQUEsQ0FBQSw4Q0FBQSxFQUFpRCxJQUFJLENBQUEsRUFBQSxFQUFLLEtBQUssQ0FBRSxDQUFBLENBQUE7QUFBQTtBQUVsRjs7OzsifQ==