puppeteer-extra-plugin-session
Version:
A puppeteer plugin to dump and inject session data.
36 lines • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setSessionData = exports.getSessionData = exports.storageProviderMap = void 0;
const storage_provider_1 = require("./classes/storage-provider");
const cookies_1 = require("./providers/cookies");
const indexedDb_1 = require("./providers/indexedDb");
const localStorage_1 = require("./providers/localStorage");
const sessionStorage_1 = require("./providers/sessionStorage");
exports.storageProviderMap = {
[storage_provider_1.StorageProviderName.Cookie]: new cookies_1.CookieStorageProvider(),
[storage_provider_1.StorageProviderName.LocalStorage]: new localStorage_1.LocalStorageProvider(),
[storage_provider_1.StorageProviderName.SessionStorage]: new sessionStorage_1.SessionStorageProvider(),
[storage_provider_1.StorageProviderName.IndexedDB]: new indexedDb_1.IndexedDBStorageProvider(),
};
/**
* All the storage providers!
*/
const allStorageProviders = Object.values(storage_provider_1.StorageProviderName);
async function getSessionData(page, providers = allStorageProviders) {
const data = {};
for (const provider of providers) {
data[provider] = await exports.storageProviderMap[provider].get(page);
}
return data;
}
exports.getSessionData = getSessionData;
async function setSessionData(page, sessionData, providers = allStorageProviders) {
await Promise.all(providers.map(async (providerName) => {
const data = sessionData[providerName];
if (data) {
await exports.storageProviderMap[providerName].set(page, data);
}
}));
}
exports.setSessionData = setSessionData;
//# sourceMappingURL=session.js.map