import { Authorization, Token, UserInfo } from '@/constants/authorization'; import { getSearchValue } from './common-util'; const KeySet = [Authorization, Token, UserInfo]; const storage = { getAuthorization: () => { return localStorage.getItem(Authorization); }, getToken: () => { return localStorage.getItem(Token); }, getUserInfo: () => { return localStorage.getItem(UserInfo); }, getUserInfoObject: () => { return JSON.parse(localStorage.getItem('userInfo') || ''); }, setAuthorization: (value: string) => { localStorage.setItem(Authorization, value); }, setToken: (value: string) => { localStorage.setItem(Token, value); }, setUserInfo: (value: string | Record) => { let valueStr = typeof value !== 'string' ? JSON.stringify(value) : value; localStorage.setItem(UserInfo, valueStr); }, setItems: (pairs: Record) => { Object.entries(pairs).forEach(([key, value]) => { localStorage.setItem(key, value); }); }, removeAuthorization: () => { localStorage.removeItem(Authorization); }, removeAll: () => { KeySet.forEach((x) => { localStorage.removeItem(x); }); }, setLanguage: (lng: string) => { localStorage.setItem('lng', lng); }, getLanguage: (): string => { return localStorage.getItem('lng') as string; }, }; export const getAuthorization = () => { const sharedId = getSearchValue('shared_id'); const authorization = sharedId ? 'Bearer ' + sharedId : storage.getAuthorization() || ''; return authorization; }; export default storage;