codanna 0.9.19

Code Intelligence for Large Language Models
Documentation
const PREFIX = 'app_';

function getKey(key) {
  return `${PREFIX}${key}`;
}

export const storage = {
  get(key, defaultValue = null) {
    try {
      const item = localStorage.getItem(getKey(key));
      if (item === null) {
        return defaultValue;
      }
      return JSON.parse(item);
    } catch (error) {
      console.error(`Error reading from storage: ${key}`, error);
      return defaultValue;
    }
  },

  set(key, value) {
    try {
      localStorage.setItem(getKey(key), JSON.stringify(value));
      return true;
    } catch (error) {
      console.error(`Error writing to storage: ${key}`, error);
      return false;
    }
  },

  remove(key) {
    try {
      localStorage.removeItem(getKey(key));
      return true;
    } catch (error) {
      console.error(`Error removing from storage: ${key}`, error);
      return false;
    }
  },

  clear() {
    try {
      const keys = Object.keys(localStorage).filter(k => k.startsWith(PREFIX));
      keys.forEach(k => localStorage.removeItem(k));
      return true;
    } catch (error) {
      console.error('Error clearing storage', error);
      return false;
    }
  },
};

export const sessionStorage = {
  get(key, defaultValue = null) {
    try {
      const item = window.sessionStorage.getItem(getKey(key));
      if (item === null) {
        return defaultValue;
      }
      return JSON.parse(item);
    } catch (error) {
      console.error(`Error reading from session storage: ${key}`, error);
      return defaultValue;
    }
  },

  set(key, value) {
    try {
      window.sessionStorage.setItem(getKey(key), JSON.stringify(value));
      return true;
    } catch (error) {
      console.error(`Error writing to session storage: ${key}`, error);
      return false;
    }
  },
};