| import { loadEnv } from '@build/index'; | 
|   | 
| interface ProxyStorage { | 
|   getItem(key: string): any; | 
|   setItem(Key: string, value: string): void; | 
|   removeItem(key: string): void; | 
|   clear(): void; | 
| } | 
|   | 
| const { VITE_PUBLIC_PATH } = loadEnv(); | 
|   | 
| //sessionStorage operate | 
| class sessionStorageProxy implements ProxyStorage { | 
|   protected storage: ProxyStorage; | 
|   | 
|   constructor(storageModel: ProxyStorage) { | 
|     this.storage = storageModel; | 
|   } | 
|   | 
|   getKey(key: string): string { | 
|     return `${VITE_PUBLIC_PATH}_${key}`; | 
|   } | 
|   | 
|   // 存 | 
|   public setItem(key: string, value: any): void { | 
|     this.storage.setItem(this.getKey(key), JSON.stringify(value)); | 
|   } | 
|   | 
|   // 取 | 
|   public getItem<T = any>(key: string): null | T { | 
|     return JSON.parse(this.storage.getItem(this.getKey(key))); | 
|   } | 
|   | 
|   // 删 | 
|   public removeItem(key: string): void { | 
|     this.storage.removeItem(this.getKey(key)); | 
|   } | 
|   | 
|   // 清空 | 
|   public clear(): void { | 
|     this.storage.clear(); | 
|   } | 
| } | 
|   | 
| //localStorage operate | 
| class localStorageProxy extends sessionStorageProxy implements ProxyStorage { | 
|   constructor(localStorage: ProxyStorage) { | 
|     super(localStorage); | 
|   } | 
| } | 
|   | 
| export const storageSession = new sessionStorageProxy(sessionStorage); | 
|   | 
| export const storageLocal = new localStorageProxy(localStorage); |