import { getStorageShortName } from '/@/utils/env'; import { createStorage as create, CreateStorageParams } from './storageCache'; import { enableStorageEncryption, DEFAULT_CACHE_TIME } from '/@/settings/encryptionSetting'; export type Options = Partial; const createOptions = (storage: Storage, options: Options = {}): Options => { return { // No encryption in debug mode hasEncrypt: enableStorageEncryption, storage, prefixKey: getStorageShortName(), ...options, }; }; export const WebStorage = create(createOptions(sessionStorage)); export const createStorage = (storage: Storage = sessionStorage, options: Options = {}) => { return create(createOptions(storage, options)); }; export const createSessionStorage = (options: Options = {}) => { return createStorage(sessionStorage, { ...options, timeout: DEFAULT_CACHE_TIME }); }; export const createLocalStorage = (options: Options = {}) => { return createStorage(localStorage, { ...options, timeout: DEFAULT_CACHE_TIME }); }; export default WebStorage;