google-trends-api-client
Version:
An fully typed and easy to use client for the google trends api.
26 lines • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setCookiesFromAxiosResponseIfPossible = void 0;
const simple_cookie_client_1 = require("simple-cookie-client");
const common_1 = require("./common");
const getCookiesFromCookieCache_1 = require("./getCookiesFromCookieCache");
const setCookiesFromAxiosResponseIfPossible = async ({ response, cookieCache, }) => {
// if no cache, nothing to do
if (!cookieCache)
return null;
// grab the new cookies from headers
const newCookies = (0, simple_cookie_client_1.getCookiesFromHeader)({ header: response.headers });
// merge them with the old cookies, overwrite the old ones by name
const oldCookies = (await (0, getCookiesFromCookieCache_1.getCookiesFromCookieCacheIfPossible)({ cookieCache })) ?? [];
const oldCookiesMap = oldCookies.reduce((summary, thisCookie) => {
return { ...summary, [thisCookie.name]: thisCookie };
}, {});
const mergedCookiesMap = newCookies.reduce((summary, thisCookie) => {
return { ...summary, [thisCookie.name]: thisCookie };
}, oldCookiesMap); // initialize w/ old cookies map to overwrite old cookies
const mergedCookies = Object.values(mergedCookiesMap);
// save to cache
return await cookieCache.set(common_1.COOKIES_CACHE_COOKIES_LIST_KEY, JSON.stringify(mergedCookies, null, 2));
};
exports.setCookiesFromAxiosResponseIfPossible = setCookiesFromAxiosResponseIfPossible;
//# sourceMappingURL=setCookiesFromAxiosResponseIfPossible.js.map