polemius/recoil-persist

Can I hash data before persist in local storage ?

tarzui opened this issue · 2 comments

Can I hash data before persist in local storage ?

Do you have an example use case?

You could pass Storage implementation to recoilPersist as storage, and change behavior of getItem and setItem.
For example this storage encode everything in base64 and save it in localstorage. On read get the value from localstorage, decode and return it:

import { encode, decode } from 'js-base64';

const localStorageBase64 = () => {
  return {
    setItem: (key, value) => {
      localStorage.setItem(key, encode(value))
    },
    getItem: (key) => {
      const a =  localStorage.getItem(key)
      return decode(a || '')
    },
    clear: () => {
      localStorage.clear()
    },
  }
}

const { persistAtom } = recoilPersist({ key: 'abc1234', storage: localStorageBase64() })