{"version":3,"sources":["../../src/api/utils.ts"],"sourcesContent":["export const SESSION_KEY = \"ray_tab_hash\";\nexport const STORAGE_KEY = \"ray_req_hash\";\n\nexport const getSessionKey = (): string => {\n  if (typeof window === undefined) return \"\";\n  let key = sessionStorage.getItem(SESSION_KEY);\n\n  // new a session key\n  if (!key) {\n    key = `ray-${Date.now()}`;\n    sessionStorage.setItem(SESSION_KEY, key);\n  }\n  return key;\n};\n\nexport interface ResHistory {\n  status: number;\n  url: string;\n  params?: any;\n  data: any;\n  logCount?: number;\n  time: number;\n  session: string;\n  removeLastLog?: boolean;\n}\n\nexport const updateReqHistory = async ({\n  logCount = 1000,\n  removeLastLog,\n  ...resData\n}: Omit<ResHistory, \"time\" | \"session\">): Promise<void> => {\n  if (typeof window === undefined) return new Promise((resolve) => resolve());\n  const data: ResHistory[] = JSON.parse(localStorage.getItem(STORAGE_KEY) || \"[]\").slice(0, logCount - 1);\n\n  // means retry last save error\n  if (removeLastLog) data.pop();\n\n  // if data > 1kb\n  if (new Blob([JSON.stringify(resData.data)]).size > 1024)\n    resData.data = JSON.stringify(resData.data).substring(0, 200) + \"...\";\n  data.unshift({ ...resData, time: Date.now(), session: getSessionKey() });\n\n  try {\n    localStorage.setItem(STORAGE_KEY, JSON.stringify(data));\n  } catch {\n    // if retry failed, empty request data\n    if (removeLastLog) {\n      let success = false;\n      const resStr = JSON.stringify(resData.data).substring(0, 100);\n      data[0].data = resStr + (resStr.length > 100 ? \"...\" : \"\");\n      while (!success) {\n        data.pop();\n        const resStr = JSON.stringify(resData.data).substring(0, 100);\n        data[0].data = resStr + (resStr.length > 100 ? \"...\" : \"\");\n        try {\n          localStorage.setItem(STORAGE_KEY, JSON.stringify(data));\n          success = true;\n        } catch {\n          success = false;\n        }\n      }\n      return new Promise((resolve) => resolve());\n    }\n    return updateReqHistory({\n      ...resData,\n      logCount,\n      removeLastLog: true,\n    });\n  }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAM,cAAc;AACpB,IAAM,cAAc;AAEpB,IAAM,gBAAgB,MAAc;AACzC,MAAI,OAAO,WAAW;AAAW,WAAO;AACxC,MAAI,MAAM,eAAe,QAAQ,WAAW;AAG5C,MAAI,CAAC,KAAK;AACR,UAAM,OAAO,KAAK,IAAI;AACtB,mBAAe,QAAQ,aAAa,GAAG;AAAA,EACzC;AACA,SAAO;AACT;AAaO,IAAM,mBAAmB,OAAO,OAIoB;AAJpB,eACrC;AAAA,eAAW;AAAA,IACX;AAAA,MAFqC,IAGlC,oBAHkC,IAGlC;AAAA,IAFH;AAAA,IACA;AAAA;AAGA,MAAI,OAAO,WAAW;AAAW,WAAO,IAAI,QAAQ,CAAC,YAAY,QAAQ,CAAC;AAC1E,QAAM,OAAqB,KAAK,MAAM,aAAa,QAAQ,WAAW,KAAK,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;AAGtG,MAAI;AAAe,SAAK,IAAI;AAG5B,MAAI,IAAI,KAAK,CAAC,KAAK,UAAU,QAAQ,IAAI,CAAC,CAAC,EAAE,OAAO;AAClD,YAAQ,OAAO,KAAK,UAAU,QAAQ,IAAI,EAAE,UAAU,GAAG,GAAG,IAAI;AAClE,OAAK,QAAQ,iCAAK,UAAL,EAAc,MAAM,KAAK,IAAI,GAAG,SAAS,cAAc,EAAE,EAAC;AAEvE,MAAI;AACF,iBAAa,QAAQ,aAAa,KAAK,UAAU,IAAI,CAAC;AAAA,EACxD,QAAE;AAEA,QAAI,eAAe;AACjB,UAAI,UAAU;AACd,YAAM,SAAS,KAAK,UAAU,QAAQ,IAAI,EAAE,UAAU,GAAG,GAAG;AAC5D,WAAK,GAAG,OAAO,SAAU,QAAO,SAAS,MAAM,QAAQ;AACvD,aAAO,CAAC,SAAS;AACf,aAAK,IAAI;AACT,cAAM,UAAS,KAAK,UAAU,QAAQ,IAAI,EAAE,UAAU,GAAG,GAAG;AAC5D,aAAK,GAAG,OAAO,UAAU,SAAO,SAAS,MAAM,QAAQ;AACvD,YAAI;AACF,uBAAa,QAAQ,aAAa,KAAK,UAAU,IAAI,CAAC;AACtD,oBAAU;AAAA,QACZ,QAAE;AACA,oBAAU;AAAA,QACZ;AAAA,MACF;AACA,aAAO,IAAI,QAAQ,CAAC,YAAY,QAAQ,CAAC;AAAA,IAC3C;AACA,WAAO,iBAAiB,iCACnB,UADmB;AAAA,MAEtB;AAAA,MACA,eAAe;AAAA,IACjB,EAAC;AAAA,EACH;AACF;","names":[]}