vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
32 lines (29 loc) • 2.86 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import { createFromFetch, encodeReply } from 'react-server-dom-esm/client.browser';
const createCallServer = (moduleBaseURL) => {
const callServer = async (id, args) => {
const response = await createFromFetch(
fetch(moduleBaseURL, {
method: "POST",
body: await encodeReply(args),
headers: {
Accept: "text/x-component",
"x-rsc-action": id
}
}),
{ callServer, moduleBaseURL }
);
if (response && typeof response === "object" && "returnValue" in response) {
const serverResponse = response;
return serverResponse.returnValue;
}
return response;
};
return callServer;
};
export { createCallServer };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQ2FsbFNlcnZlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL3V0aWxzL2NyZWF0ZUNhbGxTZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY3JlYXRlRnJvbUZldGNoLFxuICBlbmNvZGVSZXBseSxcbn0gZnJvbSBcInJlYWN0LXNlcnZlci1kb20tZXNtL2NsaWVudC5icm93c2VyXCI7XG5cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNhbGxTZXJ2ZXIgPSAobW9kdWxlQmFzZVVSTDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGNhbGxTZXJ2ZXIgPSBhc3luYyAoaWQ6IHN0cmluZywgYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjcmVhdGVGcm9tRmV0Y2goXG4gICAgICBmZXRjaChtb2R1bGVCYXNlVVJMLCB7XG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgIGJvZHk6IGF3YWl0IGVuY29kZVJlcGx5KGFyZ3MpLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgQWNjZXB0OiBcInRleHQveC1jb21wb25lbnRcIixcbiAgICAgICAgICBcIngtcnNjLWFjdGlvblwiOiBpZCxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgeyBjYWxsU2VydmVyLCBtb2R1bGVCYXNlVVJMIH1cbiAgICApO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBpcyBhIHNlcnZlciBhY3Rpb24gcmVzcG9uc2VcbiAgICBpZiAocmVzcG9uc2UgJiYgdHlwZW9mIHJlc3BvbnNlID09PSBcIm9iamVjdFwiICYmIFwicmV0dXJuVmFsdWVcIiBpbiByZXNwb25zZSkge1xuICAgICAgY29uc3Qgc2VydmVyUmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICAgIHJldHVybiBzZXJ2ZXJSZXNwb25zZS5yZXR1cm5WYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH07XG4gIHJldHVybiBjYWxsU2VydmVyO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBTWEsTUFBQSxnQkFBQSxHQUFtQixDQUFDLGFBQTBCLEtBQUE7QUFDekQsRUFBTSxNQUFBLFVBQUEsR0FBYSxPQUFPLEVBQUEsRUFBWSxJQUFvQixLQUFBO0FBQ3hELElBQUEsTUFBTSxXQUFXLE1BQU0sZUFBQTtBQUFBLE1BQ3JCLE1BQU0sYUFBZSxFQUFBO0FBQUEsUUFDbkIsTUFBUSxFQUFBLE1BQUE7QUFBQSxRQUNSLElBQUEsRUFBTSxNQUFNLFdBQUEsQ0FBWSxJQUFJLENBQUE7QUFBQSxRQUM1QixPQUFTLEVBQUE7QUFBQSxVQUNQLE1BQVEsRUFBQSxrQkFBQTtBQUFBLFVBQ1IsY0FBZ0IsRUFBQTtBQUFBO0FBQ2xCLE9BQ0QsQ0FBQTtBQUFBLE1BQ0QsRUFBRSxZQUFZLGFBQWM7QUFBQSxLQUM5QjtBQUdBLElBQUEsSUFBSSxRQUFZLElBQUEsT0FBTyxRQUFhLEtBQUEsUUFBQSxJQUFZLGlCQUFpQixRQUFVLEVBQUE7QUFDekUsTUFBQSxNQUFNLGNBQWlCLEdBQUEsUUFBQTtBQUN2QixNQUFBLE9BQU8sY0FBZSxDQUFBLFdBQUE7QUFBQTtBQUd4QixJQUFPLE9BQUEsUUFBQTtBQUFBLEdBQ1Q7QUFDQSxFQUFPLE9BQUEsVUFBQTtBQUNUOzs7OyJ9