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 OriginStorage variant.

Errors that can occur during session operations.

pub type SessionError {
  FileError(simplifile.FileError)
  JsonError
  BrowserError(chrome.RequestError)
}

Constructors

Session state containing cookies and per-origin storage data.

pub type SessionState {
  SessionState(
    cookies: List(network.Cookie),
    origins: List(OriginStorage),
  )
}

Constructors

A key-value storage entry.

pub type StorageEntry {
  StorageEntry(name: String, value: String)
}

Constructors

  • StorageEntry(name: String, value: String)

    The StorageEntry variant.

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.

Search Document