28 lines
851 B
TypeScript
28 lines
851 B
TypeScript
/**
|
|
* 업비트 마켓 코드 ↔ 한글명 캐시
|
|
* MarketSearchPanel 에서 market/all API 결과를 저장하고
|
|
* Toolbar 등에서 getKoreanName() 으로 조회합니다.
|
|
*/
|
|
|
|
const CACHE_KEY = 'upbit_market_names_v1';
|
|
|
|
// 앱 시작 시 localStorage에서 복원
|
|
let _cache: Record<string, string> = {};
|
|
try {
|
|
_cache = JSON.parse(localStorage.getItem(CACHE_KEY) ?? '{}');
|
|
} catch { /* ignore */ }
|
|
|
|
/** market/all 로드 후 한꺼번에 저장 */
|
|
export function setMarketNames(map: Record<string, string>): void {
|
|
_cache = { ..._cache, ...map };
|
|
try { localStorage.setItem(CACHE_KEY, JSON.stringify(_cache)); } catch { /* ignore */ }
|
|
}
|
|
|
|
/**
|
|
* 마켓 코드 → 한글명
|
|
* 캐시에 없으면 "BTC" 형식 fallback
|
|
*/
|
|
export function getKoreanName(market: string): string {
|
|
return _cache[market] ?? market.replace(/^KRW-/, '');
|
|
}
|