60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
|
/* eslint-disable no-redeclare */ // FIXME: (wyattjoh) this is a temporary solution to allow us to pass data between bundled modules
|
||
|
export const NEXT_REQUEST_META = Symbol.for("NextInternalRequestMeta");
|
||
|
export function getRequestMeta(req, key) {
|
||
|
const meta = req[NEXT_REQUEST_META] || {};
|
||
|
return typeof key === "string" ? meta[key] : meta;
|
||
|
}
|
||
|
/**
|
||
|
* Sets the request metadata.
|
||
|
*
|
||
|
* @param req the request to set the metadata on
|
||
|
* @param meta the metadata to set
|
||
|
* @returns the mutated request metadata
|
||
|
*/ export function setRequestMeta(req, meta) {
|
||
|
req[NEXT_REQUEST_META] = meta;
|
||
|
return meta;
|
||
|
}
|
||
|
/**
|
||
|
* Adds a value to the request metadata.
|
||
|
*
|
||
|
* @param request the request to mutate
|
||
|
* @param key the key to set
|
||
|
* @param value the value to set
|
||
|
* @returns the mutated request metadata
|
||
|
*/ export function addRequestMeta(request, key, value) {
|
||
|
const meta = getRequestMeta(request);
|
||
|
meta[key] = value;
|
||
|
return setRequestMeta(request, meta);
|
||
|
}
|
||
|
/**
|
||
|
* Removes a key from the request metadata.
|
||
|
*
|
||
|
* @param request the request to mutate
|
||
|
* @param key the key to remove
|
||
|
* @returns the mutated request metadata
|
||
|
*/ export function removeRequestMeta(request, key) {
|
||
|
const meta = getRequestMeta(request);
|
||
|
delete meta[key];
|
||
|
return setRequestMeta(request, meta);
|
||
|
}
|
||
|
export function getNextInternalQuery(query) {
|
||
|
const keysToInclude = [
|
||
|
"__nextDefaultLocale",
|
||
|
"__nextFallback",
|
||
|
"__nextLocale",
|
||
|
"__nextSsgPath",
|
||
|
"_nextBubbleNoFallback",
|
||
|
"__nextDataReq",
|
||
|
"__nextInferredLocaleFromDefault"
|
||
|
];
|
||
|
const nextInternalQuery = {};
|
||
|
for (const key of keysToInclude){
|
||
|
if (key in query) {
|
||
|
// @ts-ignore this can't be typed correctly
|
||
|
nextInternalQuery[key] = query[key];
|
||
|
}
|
||
|
}
|
||
|
return nextInternalQuery;
|
||
|
}
|
||
|
|
||
|
//# sourceMappingURL=request-meta.js.map
|