vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
36 lines (33 loc) • 4.89 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import { MessageChannel } from 'node:worker_threads';
import { setMaxListenersOnPort, unrefPort } from './setMaxListeners.js';
function createMessageChannels() {
const dataChannel = new MessageChannel();
const controlChannel = new MessageChannel();
setMaxListenersOnPort(dataChannel.port1, 500);
setMaxListenersOnPort(dataChannel.port2, 500);
setMaxListenersOnPort(controlChannel.port1, 500);
setMaxListenersOnPort(controlChannel.port2, 500);
unrefPort(dataChannel.port1);
unrefPort(dataChannel.port2);
unrefPort(controlChannel.port1);
unrefPort(controlChannel.port2);
return {
dataChannel,
controlChannel,
// Convenience destructuring for common usage pattern
dataPort1: dataChannel.port1,
dataPort2: dataChannel.port2,
controlPort1: controlChannel.port1,
controlPort2: controlChannel.port2
};
}
function createTransferList(port1, port2) {
return [port1, port2];
}
export { createMessageChannels, createTransferList };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTWVzc2FnZUNoYW5uZWxzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vc3RyZWFtL2NyZWF0ZU1lc3NhZ2VDaGFubmVscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlQ2hhbm5lbCB9IGZyb20gXCJub2RlOndvcmtlcl90aHJlYWRzXCI7XG5pbXBvcnQgeyBzZXRNYXhMaXN0ZW5lcnNPblBvcnQsIHVucmVmUG9ydCB9IGZyb20gXCIuL3NldE1heExpc3RlbmVycy5qc1wiO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBwYWlyIG9mIE1lc3NhZ2VDaGFubmVscyBmb3IgdHdvLXBvcnQgY29tbXVuaWNhdGlvbiBwYXR0ZXJuLlxuICogXG4gKiBUaGlzIGlzIHRoZSBzdGFuZGFyZCBwYXR0ZXJuIHVzZWQgdGhyb3VnaG91dCB0aGUgY29kZWJhc2UgZm9yIHdvcmtlciBjb21tdW5pY2F0aW9uOlxuICogLSBEYXRhIGNoYW5uZWw6IEZvciBzdHJlYW1pbmcgYWN0dWFsIGRhdGEgKFJTQyBjaHVua3MsIEhUTUwgY29udGVudCwgZXRjLilcbiAqIC0gQ29udHJvbCBjaGFubmVsOiBGb3IgY29udHJvbCBtZXNzYWdlcyAoY29tcGxldGlvbiBzaWduYWxzLCBlcnJvcnMsIG1ldHJpY3MsIGV0Yy4pXG4gKiBcbiAqIEByZXR1cm5zIE9iamVjdCBjb250YWluaW5nIGJvdGggY2hhbm5lbHMgd2l0aCBjb25zaXN0ZW50IG5hbWluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWVzc2FnZUNoYW5uZWxzKCkge1xuICBjb25zdCBkYXRhQ2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpO1xuICBjb25zdCBjb250cm9sQ2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpO1xuICBcbiAgLy8gSW5jcmVhc2UgbWF4IGxpc3RlbmVycyB0byBwcmV2ZW50IHdhcm5pbmdzIGR1cmluZyBkZXZlbG9wbWVudFxuICAvLyBNTUMgaGFzIDMwMCsgcm91dGVzLCBzbyB3ZSBuZWVkIGEgaGlnaCBsaW1pdFxuICBzZXRNYXhMaXN0ZW5lcnNPblBvcnQoZGF0YUNoYW5uZWwucG9ydDEsIDUwMCk7XG4gIHNldE1heExpc3RlbmVyc09uUG9ydChkYXRhQ2hhbm5lbC5wb3J0MiwgNTAwKTtcbiAgc2V0TWF4TGlzdGVuZXJzT25Qb3J0KGNvbnRyb2xDaGFubmVsLnBvcnQxLCA1MDApO1xuICBzZXRNYXhMaXN0ZW5lcnNPblBvcnQoY29udHJvbENoYW5uZWwucG9ydDIsIDUwMCk7XG5cbiAgLy8gVW5yZWYgYWxsIHBvcnRzIHNvIHRoZXkgZG9uJ3Qga2VlcCB0aGUgZXZlbnQgbG9vcCBhbGl2ZVxuICB1bnJlZlBvcnQoZGF0YUNoYW5uZWwucG9ydDEpO1xuICB1bnJlZlBvcnQoZGF0YUNoYW5uZWwucG9ydDIpO1xuICB1bnJlZlBvcnQoY29udHJvbENoYW5uZWwucG9ydDEpO1xuICB1bnJlZlBvcnQoY29udHJvbENoYW5uZWwucG9ydDIpO1xuICBcbiAgcmV0dXJuIHtcbiAgICBkYXRhQ2hhbm5lbCxcbiAgICBjb250cm9sQ2hhbm5lbCxcbiAgICAvLyBDb252ZW5pZW5jZSBkZXN0cnVjdHVyaW5nIGZvciBjb21tb24gdXNhZ2UgcGF0dGVyblxuICAgIGRhdGFQb3J0MTogZGF0YUNoYW5uZWwucG9ydDEsXG4gICAgZGF0YVBvcnQyOiBkYXRhQ2hhbm5lbC5wb3J0MixcbiAgICBjb250cm9sUG9ydDE6IGNvbnRyb2xDaGFubmVsLnBvcnQxLFxuICAgIGNvbnRyb2xQb3J0MjogY29udHJvbENoYW5uZWwucG9ydDIsXG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0cmFuc2ZlciBsaXN0IGZvciBNZXNzYWdlUG9ydCBjb21tdW5pY2F0aW9uLlxuICogXG4gKiBVc2VkIHdoZW4gc2VuZGluZyBwb3J0cyB0aHJvdWdoIHBvc3RNZXNzYWdlIHdpdGggdHJhbnNmZXJhYmxlIG9iamVjdHMuXG4gKiBcbiAqIEBwYXJhbSBwb3J0MSAtIEZpcnN0IHBvcnQgdG8gdHJhbnNmZXJcbiAqIEBwYXJhbSBwb3J0MiAtIFNlY29uZCBwb3J0IHRvIHRyYW5zZmVyICBcbiAqIEByZXR1cm5zIEFycmF5IHN1aXRhYmxlIGZvciB0cmFuc2Zlckxpc3QgcGFyYW1ldGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2Zlckxpc3QocG9ydDE6IGFueSwgcG9ydDI6IGFueSkge1xuICByZXR1cm4gW3BvcnQxLCBwb3J0Ml0gYXMgYW55OyAvLyBUeXBlIGFzc2VydGlvbiBuZWVkZWQgZHVlIHRvIHRyYW5zZmVyYWJsZSBvYmplY3QgY29tcGxleGl0eVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBWU8sU0FBUyxxQkFBd0IsR0FBQTtBQUN0QyxFQUFNLE1BQUEsV0FBQSxHQUFjLElBQUksY0FBZSxFQUFBO0FBQ3ZDLEVBQU0sTUFBQSxjQUFBLEdBQWlCLElBQUksY0FBZSxFQUFBO0FBSTFDLEVBQXNCLHFCQUFBLENBQUEsV0FBQSxDQUFZLE9BQU8sR0FBRyxDQUFBO0FBQzVDLEVBQXNCLHFCQUFBLENBQUEsV0FBQSxDQUFZLE9BQU8sR0FBRyxDQUFBO0FBQzVDLEVBQXNCLHFCQUFBLENBQUEsY0FBQSxDQUFlLE9BQU8sR0FBRyxDQUFBO0FBQy9DLEVBQXNCLHFCQUFBLENBQUEsY0FBQSxDQUFlLE9BQU8sR0FBRyxDQUFBO0FBRy9DLEVBQUEsU0FBQSxDQUFVLFlBQVksS0FBSyxDQUFBO0FBQzNCLEVBQUEsU0FBQSxDQUFVLFlBQVksS0FBSyxDQUFBO0FBQzNCLEVBQUEsU0FBQSxDQUFVLGVBQWUsS0FBSyxDQUFBO0FBQzlCLEVBQUEsU0FBQSxDQUFVLGVBQWUsS0FBSyxDQUFBO0FBRTlCLEVBQU8sT0FBQTtBQUFBLElBQ0wsV0FBQTtBQUFBLElBQ0EsY0FBQTtBQUFBO0FBQUEsSUFFQSxXQUFXLFdBQVksQ0FBQSxLQUFBO0FBQUEsSUFDdkIsV0FBVyxXQUFZLENBQUEsS0FBQTtBQUFBLElBQ3ZCLGNBQWMsY0FBZSxDQUFBLEtBQUE7QUFBQSxJQUM3QixjQUFjLGNBQWUsQ0FBQTtBQUFBLEdBQy9CO0FBQ0Y7QUFXTyxTQUFTLGtCQUFBLENBQW1CLE9BQVksS0FBWSxFQUFBO0FBQ3pELEVBQU8sT0FBQSxDQUFDLE9BQU8sS0FBSyxDQUFBO0FBQ3RCOzs7OyJ9