next
Version:
The React Framework
44 lines (43 loc) • 1.57 kB
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