{"version":3,"file":"utils/storage.mjs","sources":["../../src/utils/storage.tsx"],"sourcesContent":["import type { Config } from '../config';\nimport { APILoaderMode4Dev, Language, Theme, ViewMode } from '../constants';\n\nenum Keys {\n  Namespace = '__RSDOCTOR__STORAGE__',\n  Theme = 'THEME',\n  Locale = 'LOCALE',\n  ViewMode = 'VIEWMODE',\n  APILoaderMode4Dev = 'APILOADERMODE_DEV',\n  FirstVisit = 'FIRST_VISIT',\n}\n\nexport function getStorage(key: string): string | null {\n  return window.localStorage.getItem(`${Keys.Namespace}${key}`);\n}\n\nexport function setStorage(key: string, value: string): boolean {\n  try {\n    window.localStorage.setItem(`${Keys.Namespace}${key}`, value);\n    return true;\n  } catch (error) {\n    console.error(error);\n    return false;\n  }\n}\n\nexport function getThemeFromStorage(): Config['theme'] {\n  return (getStorage(Keys.Theme) as Config['theme']) || Theme.Light;\n}\n\nexport function setThemeToStorage(theme: Config['theme']) {\n  setStorage(Keys.Theme, theme);\n}\n\nexport function getLocaleFromStorage(): Config['locale'] {\n  return (getStorage(Keys.Locale) as Config['locale']) || Language.En;\n}\n\nexport function setLocaleToStorage(locale: Config['locale']) {\n  setStorage(Keys.Locale, locale);\n}\n\nexport function getViewModeFromStorage(): Config['viewMode'] {\n  const fallback: Config['viewMode'] = {\n    bundleAlerts: ViewMode.List,\n    compileAlerts: ViewMode.List,\n  };\n  try {\n    const str = getStorage(Keys.ViewMode);\n    if (str) {\n      return JSON.parse(str) || fallback;\n    }\n    return fallback;\n  } catch {\n    return fallback;\n  }\n}\n\nexport function setViewModeToStorage(viewMode: Config['viewMode']) {\n  setStorage(Keys.ViewMode, JSON.stringify(viewMode));\n}\n\nexport function hasViewModeFromStorage(): boolean {\n  return !!getStorage(Keys.ViewMode);\n}\n\nexport function setAPILoaderModeToStorage(mode: APILoaderMode4Dev) {\n  setStorage(Keys.APILoaderMode4Dev, mode);\n}\n\nexport function getAPILoaderModeFromStorage() {\n  return getStorage(Keys.APILoaderMode4Dev) || APILoaderMode4Dev.Default;\n}\n\nexport function getFirstVisitFromStorage() {\n  return getStorage(Keys.FirstVisit);\n}\n\nexport function setFirstVisitToStorage(value: '1') {\n  setStorage(Keys.FirstVisit, value);\n}\n"],"names":["getStorage","key","window","setStorage","value","error","console","getThemeFromStorage","Theme","setThemeToStorage","theme","getLocaleFromStorage","Language","setLocaleToStorage","locale","getViewModeFromStorage","fallback","ViewMode","str","JSON","setViewModeToStorage","viewMode","hasViewModeFromStorage","setAPILoaderModeToStorage","mode","getAPILoaderModeFromStorage","APILoaderMode4Dev","getFirstVisitFromStorage","setFirstVisitToStorage"],"mappings":";AAYO,SAASA,WAAWC,GAAW;IACpC,OAAOC,OAAO,YAAY,CAAC,OAAO,CAAC,wBAAoBD,KAAK;AAC9D;AAEO,SAASE,WAAWF,GAAW,EAAEG,KAAa;IACnD,IAAI;QACFF,OAAO,YAAY,CAAC,OAAO,CAAC,wBAAoBD,KAAK,EAAEG;QACvD,OAAO;IACT,EAAE,OAAOC,OAAO;QACdC,QAAQ,KAAK,CAACD;QACd,OAAO;IACT;AACF;AAEO,SAASE;IACd,OAAQP,WAAW,YAAmCQ,MAAM,KAAK;AACnE;AAEO,SAASC,kBAAkBC,KAAsB;IACtDP,WAAW,SAAYO;AACzB;AAEO,SAASC;IACd,OAAQX,WAAW,aAAqCY,SAAS,EAAE;AACrE;AAEO,SAASC,mBAAmBC,MAAwB;IACzDX,WAAW,UAAaW;AAC1B;AAEO,SAASC;IACd,MAAMC,WAA+B;QACnC,cAAcC,SAAS,IAAI;QAC3B,eAAeA,SAAS,IAAI;IAC9B;IACA,IAAI;QACF,MAAMC,MAAMlB,WAAW;QACvB,IAAIkB,KACF,OAAOC,KAAK,KAAK,CAACD,QAAQF;QAE5B,OAAOA;IACT,EAAE,OAAM;QACN,OAAOA;IACT;AACF;AAEO,SAASI,qBAAqBC,QAA4B;IAC/DlB,WAAW,YAAegB,KAAK,SAAS,CAACE;AAC3C;AAEO,SAASC;IACd,OAAO,CAAC,CAACtB,WAAW;AACtB;AAEO,SAASuB,0BAA0BC,IAAuB;IAC/DrB,WAAW,qBAAwBqB;AACrC;AAEO,SAASC;IACd,OAAOzB,WAAW,wBAA2B0B,kBAAkB,OAAO;AACxE;AAEO,SAASC;IACd,OAAO3B,WAAW;AACpB;AAEO,SAAS4B,uBAAuBxB,KAAU;IAC/CD,WAAW,eAAiBC;AAC9B"}