fix: 处理window不可用时降级使用Memory

pull/348/MERGE
layhuts 2026-05-09 12:49:21 +08:00
parent 75ed17a1f9
commit 1f584ff0c9
1 changed files with 14 additions and 1 deletions

View File

@ -5,6 +5,7 @@ import type {
} from './types'; } from './types';
import {LocalStorageDriver} from './local-storage-driver'; import {LocalStorageDriver} from './local-storage-driver';
import {MemoryStorageDriver} from './memory-storage-driver';
/** /**
* *
@ -17,7 +18,7 @@ class StorageManager {
private prefix: string; private prefix: string;
constructor({driver, prefix = ''}: StorageManagerOptions = {}) { constructor({driver, prefix = ''}: StorageManagerOptions = {}) {
this.driver = driver || new LocalStorageDriver(); this.driver = driver || this.createDefaultDriver();
this.prefix = prefix; this.prefix = prefix;
} }
@ -105,6 +106,18 @@ class StorageManager {
await this.driver.setItem(fullKey, item); await this.driver.setItem(fullKey, item);
} }
/**
*
* - window.localStorage LocalStorageDriver
* - SSR / Node MemoryStorageDriver
*/
private createDefaultDriver(): IStorageDriver {
if (typeof window !== 'undefined' && window.localStorage) {
return new LocalStorageDriver();
}
return new MemoryStorageDriver();
}
/** /**
* *
* @param key * @param key