You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.4 KiB
JavaScript

9 months ago
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
withRequest: null,
getTestReqInfo: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
withRequest: function() {
return withRequest;
},
getTestReqInfo: function() {
return getTestReqInfo;
}
});
const _nodeasync_hooks = require("node:async_hooks");
const testStorage = new _nodeasync_hooks.AsyncLocalStorage();
function extractTestInfoFromRequest(req, reader) {
const proxyPortHeader = reader.header(req, "next-test-proxy-port");
if (!proxyPortHeader) {
return undefined;
}
const url = reader.url(req);
const proxyPort = Number(proxyPortHeader);
const testData = reader.header(req, "next-test-data") || "";
return {
url,
proxyPort,
testData
};
}
function withRequest(req, reader, fn) {
const testReqInfo = extractTestInfoFromRequest(req, reader);
if (!testReqInfo) {
return fn();
}
return testStorage.run(testReqInfo, fn);
}
function getTestReqInfo(req, reader) {
const testReqInfo = testStorage.getStore();
if (testReqInfo) {
return testReqInfo;
}
if (req && reader) {
return extractTestInfoFromRequest(req, reader);
}
return undefined;
}
//# sourceMappingURL=context.js.map