import { DEFAULT_CACHE_TIME, enableStorageEncryption, getStorageShortName } from '../../index'; import { createStorage as create, CreateStorageParams } from './storageCache'; 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 createStorageFn = (storage: Storage = sessionStorage, options: Options = {}) => { return create(createOptions(storage, options)); }; export const createSessionStorage = (options: Options = {}) => { return createStorageFn(sessionStorage, { ...options, timeout: DEFAULT_CACHE_TIME }); }; export const createLocalStorage = (options: Options = {}) => { return createStorageFn(localStorage, { ...options, timeout: DEFAULT_CACHE_TIME }); };