UNPKG

vite-plugin-react-server

Version:
71 lines (68 loc) 8.06 kB
/** * vite-plugin-react-server * Copyright (c) Nico Brinkkemper * MIT License */ import { createRscStream } from './createRscStream.server.js'; import { handleError } from '../error/handleError.js'; import { getNodeEnv } from '../config/getNodeEnv.js'; const handleRscStream = function _handleRscStream({ options }) { const verbose = options.verbose; const logger = options.logger; const panicThreshold = options.panicThreshold; try { if (verbose) { logger?.info("[handleWorkerRscStream:server] Creating RSC stream directly"); } if (verbose) { logger?.info(`[handleWorkerRscStream:server] Options: route=${options.route}, rscWorker=${!!options.rscWorker}`); } const requestId = options.id ?? `${options.route}-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`; if (verbose) { logger?.info(`[handleWorkerRscStream:server] About to call createRscStream with worker=${!!options.rscWorker}`); } const rscResult = createRscStream({ ...options, id: requestId, logger, verbose, panicThreshold, rscWorker: options.rscWorker, // Use rscWorker if provided loader: options.loader || (() => Promise.resolve({ default: {} })) // Add missing loader }); return new ReadableStream({ start(controller) { rscResult.rscStream.on("data", (chunk) => { controller.enqueue(new Uint8Array(chunk)); }); rscResult.rscStream.on("end", () => { controller.close(); }); rscResult.rscStream.on("error", (error) => { controller.error(error); }); }, cancel() { rscResult.abort?.(); } }); } catch (error) { const panicError = handleError({ error, logger, mode: getNodeEnv(), panicThreshold, context: `Server RSC stream creation error for route ${options.route}` }); if (panicError != null) { throw panicError; } throw error; } }; export { handleRscStream }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlUnNjU3RyZWFtLnNlcnZlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL3N0cmVhbS9oYW5kbGVSc2NTdHJlYW0uc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSGFuZGxlUnNjU3RyZWFtRm4gfSBmcm9tIFwiLi9oYW5kbGVSc2NTdHJlYW0udHlwZXMuanNcIjtcbmltcG9ydCB7IGNyZWF0ZVJzY1N0cmVhbSB9IGZyb20gXCIuL2NyZWF0ZVJzY1N0cmVhbS5zZXJ2ZXIuanNcIjtcbmltcG9ydCB7IGhhbmRsZUVycm9yIH0gZnJvbSBcIi4uL2Vycm9yL2hhbmRsZUVycm9yLmpzXCI7XG5pbXBvcnQgeyBnZXROb2RlRW52IH0gZnJvbSBcIi4uL2NvbmZpZy9nZXROb2RlRW52LmpzXCI7XG5cbi8qKlxuICogU2VydmVyLXNpZGUgUlNDIHN0cmVhbSBoYW5kbGVyXG4gKi9cbmV4cG9ydCBjb25zdCBoYW5kbGVSc2NTdHJlYW06IEhhbmRsZVJzY1N0cmVhbUZuPFwic2VydmVyXCI+ID0gZnVuY3Rpb24gX2hhbmRsZVJzY1N0cmVhbSh7XG4gIG9wdGlvbnMsXG59KSB7XG4gIC8vIE5vdGU6IHdvcmtlciBwYXJhbWV0ZXIgaXMgaWdub3JlZCBpbiBzZXJ2ZXIgdmVyc2lvblxuICBjb25zdCB2ZXJib3NlID0gb3B0aW9ucy52ZXJib3NlO1xuICBjb25zdCBsb2dnZXIgPSBvcHRpb25zLmxvZ2dlcjtcbiAgY29uc3QgcGFuaWNUaHJlc2hvbGQgPSBvcHRpb25zLnBhbmljVGhyZXNob2xkO1xuICB0cnkge1xuICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICBsb2dnZXI/LmluZm8oXCJbaGFuZGxlV29ya2VyUnNjU3RyZWFtOnNlcnZlcl0gQ3JlYXRpbmcgUlNDIHN0cmVhbSBkaXJlY3RseVwiKTtcbiAgICB9XG4gICAgXG4gICAgLy8gRGVidWc6IExvZyB0aGUgb3B0aW9ucyB0byBzZWUgd2hhdCB3ZSdyZSB3b3JraW5nIHdpdGhcbiAgICBpZiAodmVyYm9zZSkge1xuICAgICAgbG9nZ2VyPy5pbmZvKGBbaGFuZGxlV29ya2VyUnNjU3RyZWFtOnNlcnZlcl0gT3B0aW9uczogcm91dGU9JHtvcHRpb25zLnJvdXRlfSwgcnNjV29ya2VyPSR7ISEob3B0aW9ucyBhcyBhbnkpLnJzY1dvcmtlcn1gKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgUlNDIHN0cmVhbSB1c2luZyB0aGUgaGVscGVyIC0gbWVzc2FnZSBpcyBhbHJlYWR5IENyZWF0ZVJzY1N0cmVhbU9wdGlvbnNcbiAgICBjb25zdCByZXF1ZXN0SWQgPVxuICAgICAgb3B0aW9ucy5pZCA/P1xuICAgICAgYCR7b3B0aW9ucy5yb3V0ZX0tJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKClcbiAgICAgICAgLnRvU3RyaW5nKDM2KVxuICAgICAgICAuc3Vic3RyaW5nKDIsIDExKX1gO1xuXG4gICAgLy8gQ3JlYXRlIFJTQyBzdHJlYW0gd2l0aCB1bmlmaWVkIHN0cmVhbSBtYW5hZ2VtZW50XG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIGxvZ2dlcj8uaW5mbyhgW2hhbmRsZVdvcmtlclJzY1N0cmVhbTpzZXJ2ZXJdIEFib3V0IHRvIGNhbGwgY3JlYXRlUnNjU3RyZWFtIHdpdGggd29ya2VyPSR7ISEob3B0aW9ucyBhcyBhbnkpLnJzY1dvcmtlcn1gKTtcbiAgICB9XG4gICAgY29uc3QgcnNjUmVzdWx0ID0gY3JlYXRlUnNjU3RyZWFtKHtcbiAgICAgIC4uLm9wdGlvbnMsIFxuICAgICAgaWQ6IHJlcXVlc3RJZCxcbiAgICAgIGxvZ2dlcixcbiAgICAgIHZlcmJvc2UsXG4gICAgICBwYW5pY1RocmVzaG9sZCxcbiAgICAgIHJzY1dvcmtlcjogb3B0aW9ucy5yc2NXb3JrZXIsIC8vIFVzZSByc2NXb3JrZXIgaWYgcHJvdmlkZWRcbiAgICAgIGxvYWRlcjogb3B0aW9ucy5sb2FkZXIgfHwgKCgpID0+IFByb21pc2UucmVzb2x2ZSh7IGRlZmF1bHQ6IHt9IH0pKSwgLy8gQWRkIG1pc3NpbmcgbG9hZGVyXG4gICAgfSBhcyBhbnkpO1xuXG4gICAgLy8gQ29udmVydCB0aGUgUlNDIHN0cmVhbSBkaXJlY3RseSB0byBhIFJlYWRhYmxlU3RyZWFtXG4gICAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5Pih7XG4gICAgICBzdGFydChjb250cm9sbGVyKSB7XG4gICAgICAgIHJzY1Jlc3VsdC5yc2NTdHJlYW0ub24oXCJkYXRhXCIsIChjaHVuazogQnVmZmVyKSA9PiB7XG4gICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KGNodW5rKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJzY1Jlc3VsdC5yc2NTdHJlYW0ub24oXCJlbmRcIiwgKCkgPT4ge1xuICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcnNjUmVzdWx0LnJzY1N0cmVhbS5vbihcImVycm9yXCIsIChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBjYW5jZWwoKSB7XG4gICAgICAgIHJzY1Jlc3VsdC5hYm9ydD8uKCk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgcGFuaWNFcnJvciA9IGhhbmRsZUVycm9yKHtcbiAgICAgIGVycm9yLFxuICAgICAgbG9nZ2VyLFxuICAgICAgbW9kZTogZ2V0Tm9kZUVudigpLFxuICAgICAgcGFuaWNUaHJlc2hvbGQsXG4gICAgICBjb250ZXh0OiBgU2VydmVyIFJTQyBzdHJlYW0gY3JlYXRpb24gZXJyb3IgZm9yIHJvdXRlICR7b3B0aW9ucy5yb3V0ZX1gLFxuICAgIH0pO1xuXG4gICAgaWYgKHBhbmljRXJyb3IgIT0gbnVsbCkge1xuICAgICAgdGhyb3cgcGFuaWNFcnJvcjtcbiAgICB9XG5cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtc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