summaryrefslogtreecommitdiffhomepage
path: root/src/adapters/local-storage/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/adapters/local-storage/index.ts')
-rw-r--r--src/adapters/local-storage/index.ts86
1 files changed, 43 insertions, 43 deletions
diff --git a/src/adapters/local-storage/index.ts b/src/adapters/local-storage/index.ts
index 72135ce..9dd2ffd 100644
--- a/src/adapters/local-storage/index.ts
+++ b/src/adapters/local-storage/index.ts
@@ -1,58 +1,58 @@
export interface LocalStore<T> {
- load(): T | null;
- save(value: T): void;
- clear(): void;
+ load(): T | null;
+ save(value: T): void;
+ clear(): void;
}
export interface CreateLocalStoreOptions {
- storage?: Storage | undefined;
+ storage?: Storage | undefined;
}
function createNoopStore<T>(): LocalStore<T> {
- return {
- load() {
- return null;
- },
- save() {},
- clear() {},
- };
+ return {
+ load() {
+ return null;
+ },
+ save() {},
+ clear() {},
+ };
}
export function createLocalStore<T>(key: string, opts?: CreateLocalStoreOptions): LocalStore<T> {
- let storage: Storage | undefined;
- if (opts !== undefined && "storage" in opts) {
- storage = opts.storage;
- } else {
- storage = globalThis.localStorage;
- }
+ let storage: Storage | undefined;
+ if (opts !== undefined && "storage" in opts) {
+ storage = opts.storage;
+ } else {
+ storage = globalThis.localStorage;
+ }
- if (storage === undefined || storage === null) {
- return createNoopStore<T>();
- }
+ if (storage === undefined || storage === null) {
+ return createNoopStore<T>();
+ }
- return {
- load(): T | null {
- try {
- const raw = storage.getItem(key);
- if (raw === null) {
- return null;
- }
- return JSON.parse(raw) as T;
- } catch {
- return null;
- }
- },
+ return {
+ load(): T | null {
+ try {
+ const raw = storage.getItem(key);
+ if (raw === null) {
+ return null;
+ }
+ return JSON.parse(raw) as T;
+ } catch {
+ return null;
+ }
+ },
- save(value: T): void {
- try {
- storage.setItem(key, JSON.stringify(value));
- } catch {
- // Swallow quota / write errors — persistence is best-effort.
- }
- },
+ save(value: T): void {
+ try {
+ storage.setItem(key, JSON.stringify(value));
+ } catch {
+ // Swallow quota / write errors — persistence is best-effort.
+ }
+ },
- clear(): void {
- storage.removeItem(key);
- },
- };
+ clear(): void {
+ storage.removeItem(key);
+ },
+ };
}