Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import type { StorageAccessor } from "@/types/storage";
function makeStorageAccessor(getStorage: () => Storage): StorageAccessor {
return {
read(key: string): string | null {
if (typeof window === "undefined") return null;
try {
return getStorage().getItem(key);
} catch {
return null;
}
},
write(key: string, value: string | null) {
if (typeof window === "undefined") return;
try {
if (value !== null) {
getStorage().setItem(key, value);
} else {
getStorage().removeItem(key);
}
} catch {
// Ignore storage failures.
}
},
};
}
export const local = makeStorageAccessor(() => window.localStorage);
export const session = makeStorageAccessor(() => window.sessionStorage);
|