44 lines
1.5 KiB
JavaScript
44 lines
1.5 KiB
JavaScript
import { NEXT_REQUEST_ID_HEADER } from '../components/app-router-headers';
|
|
import { InvariantError } from '../../shared/lib/invariant-error';
|
|
const pairs = new Map();
|
|
export function getOrCreateDebugChannelReadableWriterPair(requestId) {
|
|
let pair = pairs.get(requestId);
|
|
if (!pair) {
|
|
const { readable, writable } = new TransformStream();
|
|
pair = {
|
|
readable,
|
|
writer: writable.getWriter()
|
|
};
|
|
pairs.set(requestId, pair);
|
|
pair.writer.closed.finally(()=>pairs.delete(requestId));
|
|
}
|
|
return pair;
|
|
}
|
|
export function createDebugChannel(requestHeaders) {
|
|
let requestId;
|
|
if (requestHeaders) {
|
|
requestId = requestHeaders[NEXT_REQUEST_ID_HEADER] ?? undefined;
|
|
if (!requestId) {
|
|
throw Object.defineProperty(new InvariantError(`Expected a ${JSON.stringify(NEXT_REQUEST_ID_HEADER)} request header.`), "__NEXT_ERROR_CODE", {
|
|
value: "E854",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
} else {
|
|
requestId = self.__next_r;
|
|
if (!requestId) {
|
|
throw Object.defineProperty(new InvariantError(`Expected a request ID to be defined for the document via self.__next_r.`), "__NEXT_ERROR_CODE", {
|
|
value: "E806",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
}
|
|
const { readable } = getOrCreateDebugChannelReadableWriterPair(requestId);
|
|
return {
|
|
readable
|
|
};
|
|
}
|
|
|
|
//# sourceMappingURL=debug-channel.js.map
|