* Gracefully handle SecurityError exception if localStorage is unavailable * use Map() Co-authored-by: Eric Kwoka <43540491+ekwoka@users.noreply.github.com> * wip --------- Co-authored-by: Eric Kwoka <43540491+ekwoka@users.noreply.github.com> Co-authored-by: Caleb Porzio <calebporzio@gmail.com>
@@ -1,7 +1,21 @@
export default function (Alpine) {
let persist = () => {
let alias
- let storage = localStorage
+ let storage
+
+ try {
+ storage = localStorage
+ } catch (e) {
+ console.error(e)
+ console.warn('Alpine: $persist is using temporary storage since localStorage is unavailable.')
+ let dummy = new Map();
+ storage = {
+ getItem: dummy.get.bind(dummy),
+ setItem: dummy.set.bind(dummy)
+ }
return Alpine.interceptor((initialValue, getter, setter, path, key) => {
let lookup = alias || `_x_${path}`