Packages
plinth
0.7.2
0.10.2
0.10.1
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.0
0.1.13
0.1.12
0.1.11
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Bindings to Node.js and browser platform APIs
Current section
Files
Jump to
Current section
Files
src/plinth/browser/storage.gleam
import gleam/javascript/promise.{type Promise}
import plinth/browser/file_system.{type DirectoryHandle}
pub type StorageManager
@external(javascript, "../../plinth_browser_storage_ffi.mjs", "getStorage")
pub fn get() -> Result(StorageManager, Nil)
pub type Estimate {
Estimate(quota: Int, usage: Int)
}
@external(javascript, "../../plinth_browser_storage_ffi.mjs", "estimate")
fn do_estimate(storage: StorageManager) -> Promise(Result(#(Int, Int), String))
pub fn estimate(storage) {
use #(quota, usage) <- promise.map_try(do_estimate(storage))
Ok(Estimate(quota, usage))
}
@external(javascript, "../../plinth_browser_storage_ffi.mjs", "getDirectory")
pub fn get_directory(
storage: StorageManager,
) -> Promise(Result(DirectoryHandle, String))
@external(javascript, "../../plinth_browser_storage_ffi.mjs", "persist")
pub fn persist(storage: StorageManager) -> Promise(Result(Bool, String))
@external(javascript, "../../plinth_browser_storage_ffi.mjs", "persisted")
pub fn persisted(storage: StorageManager) -> Promise(Result(Bool, String))