Packages
plinth
0.10.0
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/storage_ffi.mjs
import { Result$Ok, Result$Error } from "./gleam.mjs";
export function localStorage() {
try {
if (
globalThis.Storage &&
globalThis.localStorage instanceof globalThis.Storage
) {
return Result$Ok(globalThis.localStorage);
} else {
return Result$Error(null);
}
} catch {
return Result$Error(null);
}
}
export function sessionStorage() {
try {
if (
globalThis.Storage &&
globalThis.sessionStorage instanceof globalThis.Storage
) {
return Result$Ok(globalThis.sessionStorage);
} else {
return Result$Error(null);
}
} catch {
return Result$Error(null);
}
}
export function length(storage) {
return storage.length;
}
export function key(storage, index) {
return null_or(storage.key(index));
}
export function getItem(storage, keyName) {
return null_or(storage.getItem(keyName));
}
export function setItem(storage, keyName, keyValue) {
try {
storage.setItem(keyName, keyValue);
return Result$Ok(null);
} catch {
return Result$Error(null);
}
}
export function removeItem(storage, keyName) {
storage.removeItem(keyName);
}
export function clear(storage) {
storage.clear();
}
function null_or(val) {
if (val !== null) {
return Result$Ok(val);
} else {
return Result$Error(null);
}
}