glendam/session
Session persistence module for saving and restoring browser session state.
Provides functionality similar to Playwright’s storageState API.
Usage:
import glendam/session
import gleam/result
// Save session
use state <- result.try(session.save(page))
use _ <- result.try(session.save_to_file(state, "session.json"))
// Restore session
use state <- result.try(session.load_from_file("session.json"))
session.restore(page, state)
Types
Storage data for a single origin.
pub type OriginStorage {
OriginStorage(
origin: String,
local_storage: List(StorageEntry),
session_storage: List(StorageEntry),
)
}
Constructors
-
OriginStorage( origin: String, local_storage: List(StorageEntry), session_storage: List(StorageEntry), )The
OriginStoragevariant.
Errors that can occur during session operations.
pub type SessionError {
FileError(simplifile.FileError)
JsonError
BrowserError(chrome.RequestError)
}
Constructors
-
FileError(simplifile.FileError)The
FileErrorvariant. -
JsonErrorThe
JsonErrorvariant. -
BrowserError(chrome.RequestError)The
BrowserErrorvariant.
Session state containing cookies and per-origin storage data.
pub type SessionState {
SessionState(
cookies: List(network.Cookie),
origins: List(OriginStorage),
)
}
Constructors
-
SessionState( cookies: List(network.Cookie), origins: List(OriginStorage), )The
SessionStatevariant.
A key-value storage entry.
pub type StorageEntry {
StorageEntry(name: String, value: String)
}
Constructors
-
StorageEntry(name: String, value: String)The
StorageEntryvariant.
Values
pub fn load_from_file(
path path: String,
) -> Result(SessionState, SessionError)
Load session state from a JSON file.
pub fn restore(
page page: glendam.Page,
state state: SessionState,
) -> Result(Nil, SessionError)
Restore session state to a page (cookies + storage).
pub fn save(
page page: glendam.Page,
) -> Result(SessionState, SessionError)
Capture the current session state from a page (cookies + storage).
pub fn save_to_file(
state state: SessionState,
path path: String,
) -> Result(Nil, SessionError)
Save session state to a JSON file.