UNPKG

puppeteer-extra-plugin-session

Version:

A puppeteer plugin to dump and inject session data.

46 lines 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SessionManager = exports.defaultSessionManagerOptions = void 0; const zod_1 = require("zod"); const exceptions_1 = require("../exceptions"); const schemas_1 = require("../schemas"); const session_1 = require("../session"); const storage_provider_1 = require("./storage-provider"); exports.defaultSessionManagerOptions = { storageProviders: Object.values(storage_provider_1.StorageProviderName), }; class SessionManager { constructor(page) { this.page = page; } async dump(options = exports.defaultSessionManagerOptions) { return (0, session_1.getSessionData)(this.page, options.storageProviders); } async restore(sessionData, options = exports.defaultSessionManagerOptions) { let data; try { data = schemas_1.SessionDataSchema.parse(sessionData); } catch (err) { if (err instanceof zod_1.ZodError) { throw new exceptions_1.CorruptedSessionDataError(err); } throw err; } await (0, session_1.setSessionData)(this.page, data, options.storageProviders); } /** * Helper function to serialize the output of dump into JSON format. */ async dumpString(options = exports.defaultSessionManagerOptions) { return JSON.stringify(await this.dump(options)); } /** * Helper function to parse a JSON string into a SessionData object and feed it to `restore` */ async restoreString(sessionData, options = exports.defaultSessionManagerOptions) { await this.restore(JSON.parse(sessionData), options); } } exports.SessionManager = SessionManager; //# sourceMappingURL=session-manager.js.map