package bonsai

  1. Overview
  2. Docs
A library for building dynamic webapps, using Js_of_ocaml

Install

Dune Dependency

Authors

Maintainers

Sources

bonsai-v0.15.0.tar.gz
sha256=24c4c3149280abd639034ce3acf60e475a772202099e965be8bd8902524573ef

doc/bonsai.web/Bonsai_web/Persistent_var/index.html

Module Bonsai_web.Persistent_var

type 'a t
val create : (module Core.Sexpable with type t = 'a) -> [ `Local_storage | `Session_storage ] -> unique_id:string -> default:'a -> 'a t

A Persistent_var.t is similar to Bonsai.Var.t, but the contents of the var are persisted into either local storage or session storage.

Creating a persistent var requires that the type contained inside the var to be sexpable, so a first class module for the type should be passed in.

You have a choice between Local Storage and Session Storage for actually persisting things; The docs for which can be found here:

  • https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
  • https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

A unique_id is required for the storage. This value needs to be unique per application.

Finally, a fallback is required for when the value can't be found, or it can't be deserialized.

val update : 'a t -> f:('a -> 'a) -> unit
val set : 'a t -> 'a -> unit
val get : 'a t -> 'a
val value : 'a t -> 'a Bonsai.Value.t
val clear_persistence : 'a t -> unit

This will remove the value from localstorage or sessionstorage. (calling set or update afterwards will still store the value back again.)

val effect : 'a t -> 'a -> unit Effect.t

By asking for the vars effect, you get a function that can be easily threaded through your components and triggered inside an action-application or inside of an event listener.

OCaml

Innovation. Community. Security.