@toptal/davinci-cloudflare-requests-handler
Version:
Toptal Cloudflare requests handler
39 lines (33 loc) • 1.07 kB
text/typescript
// https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API
export const storageIsSupported = (type: 'localStorage' | 'sessionStorage') => {
let storage: Storage | undefined
try {
storage = window[type]
const itemKey = '__storage_test__'
storage.setItem(itemKey, itemKey)
storage.removeItem(itemKey)
return true
} catch (e) {
return (
e instanceof DOMException &&
// everything except Firefox
(e.code === 22 ||
// Firefox
e.code === 1014 ||
// test name field too, because code might not be present
// everything except Firefox
e.name === 'QuotaExceededError' ||
// Firefox
e.name === 'NS_ERROR_DOM_QUOTA_REACHED') &&
// acknowledge QuotaExceededError only if there's something already stored
storage &&
storage.length !== 0
)
}
}
export const getItem = (key: string) => {
return localStorage.getItem(key)
}
export const setItem = (key: string, value: string) => {
localStorage.setItem(key, value)
}