Packages

Typed access to LocalStorage/SessionStorage in Gleam

Current section

Files

Jump to
varasto src varasto_ffi.mjs
Raw

src/varasto_ffi.mjs

import { Result$Ok, Result$Error } from "./gleam.mjs";
export function local() {
return globalThis.localStorage
? Result$Ok(globalThis.localStorage)
: Result$Error(Nil);
}
export function session() {
return globalThis.sessionStorage
? Result$Ok(globalThis.sessionStorage)
: Result$Error(Nil);
}
/**
* @param {Storage} storage
*/
export function get(storage, key) {
const val = storage.getItem(key);
if (val === null) {
return Result$Error(undefined);
} else {
return Result$Ok(val);
}
}
/**
* @param {Storage} storage
*/
export function set(storage, key, value) {
try {
storage.setItem(key, value);
return Result$Ok(undefined);
} catch {
return Result$Error(undefined);
}
}
/**
* @param {Storage} storage
*/
export function remove(storage, key) {
storage.removeItem(key);
}
/**
* @param {Storage} storage
*/
export function clear(storage) {
storage.clear();
}