@datadome/module-nextjs
Version:
DataDome module for Next.js applications
48 lines • 1.53 kB
JavaScript
export function convertHeadersToMap(reqHeaders, dataDomeResHeaders, listKey) {
const map = new Map();
const list = dataDomeResHeaders.get(listKey);
if (!list) {
return map;
}
for (const header of list.split(' ')) {
const value = dataDomeResHeaders.get(header);
if (value) {
if (header.toLowerCase() === 'set-cookie' && /domain=\.vercel\.app/i.test(value)) {
map.set(header, value.replace(/domain=\.vercel\.app/i, `Domain=${reqHeaders.get('host')}`));
}
else {
map.set(header, value);
}
}
}
return map;
}
export function getHeadersList(req) {
return [...req.headers.keys()].join(',');
}
export function getAuthorizationLength(req) {
const authorization = req.headers.get('authorization');
return authorization === null || authorization === void 0 ? void 0 : authorization.length;
}
export function stringify(obj) {
return obj
? Object.keys(obj)
.reduce((acc, key) => {
const value = obj[key];
if (!value) {
return acc;
}
acc.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));
return acc;
}, [])
.join('&')
: '';
}
export function getCookieData(cookies) {
const datadomeCookie = cookies.get('datadome');
if (datadomeCookie !== undefined) {
return datadomeCookie.value;
}
return '';
}
//# sourceMappingURL=utils.js.map