@modern-kit/utils
Version:
1 lines • 1.43 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../src/storage/getStorageItem/index.ts"],"sourcesContent":["import { isClient } from '../../device';\nimport { isFunction } from '../../validator/isFunction';\nimport { parseJSON } from '../../common';\n\nexport function getStorageItem<T>(\n type: 'localStorage' | 'sessionStorage',\n key: string,\n initialValue: T | (() => T) | null = null\n) {\n if (!isClient()) {\n throw new Error('Cannot be executed unless it is a client environment.');\n }\n\n try {\n const initialValueToUse = isFunction(initialValue)\n ? initialValue()\n : initialValue;\n\n const storage = window[type];\n const storedValue = storage.getItem(key);\n\n return storedValue ? parseJSON(storedValue) : initialValueToUse;\n } catch (err) {\n throw new Error(`Failed to read data for key \"${key}\" in ${type}: ${err}`);\n }\n}\n"],"names":[],"mappings":";;;;;AAIO,SAAS,cAAA,CACd,IAAA,EACA,GAAA,EACA,YAAA,GAAqC,IAAA,EACrC;AACA,EAAA,IAAI,CAAC,UAAS,EAAG;AACf,IAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,EACzE;AAEA,EAAA,IAAI;AACF,IAAA,MAAM,iBAAA,GAAoB,UAAA,CAAW,YAAY,CAAA,GAC7C,cAAa,GACb,YAAA;AAEJ,IAAA,MAAM,OAAA,GAAU,OAAO,IAAI,CAAA;AAC3B,IAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,OAAA,CAAQ,GAAG,CAAA;AAEvC,IAAA,OAAO,WAAA,GAAc,SAAA,CAAU,WAAW,CAAA,GAAI,iBAAA;AAAA,EAChD,SAAS,GAAA,EAAK;AACZ,IAAA,MAAM,IAAI,MAAM,CAAA,6BAAA,EAAgC,GAAG,QAAQ,IAAI,CAAA,EAAA,EAAK,GAAG,CAAA,CAAE,CAAA;AAAA,EAC3E;AACF;;;;"}