Ada Eklentileri
Rehberler

Depolama ve ayarlar

Kalıcı veri saklamak ve kullanıcıya ayar sunmak.

Depolama

ctx.storage (ya da AdanotchKit.storage) eklentine ait, Adanotch yeniden başlasa da kalan bir anahtar-değer deposudur. Değerler JSON'dur ve okuma/yazma senkrondur.

const count = ctx.storage.get<number>("count") ?? 0;
ctx.storage.set("count", count + 1);

ctx.storage.set("history", [{ at: Date.now(), value: 42 }]);
ctx.storage.remove("draft");
ctx.storage.keys();   // ["count", "history"]
ctx.storage.clear();

Alan

Tür

  • Yalnız JSON: Date metne dönüşür, Map, Set ve fonksiyonlar kaybolur. Tarihleri milisaniye olarak sakla.
  • Sınır eklenti başına 512 KB. Geçmiş tutuyorsan sınırla: history.slice(-500).
  • Depolama eklentinin id'sine bağlıdır. Eklentiyi kaldırmak depoyu da siler.
  • API anahtarlarını burada tutma; gizli değerler Keychain'de durur.

Depo mu, modül değişkeni mi

Modül değişkenistorage
HızEn hızlıHızlı (bellekte, arka planda diske yazılır)
Yeniden başlatmadaSıfırlanırKalır
UygunSon 30 ölçüm, önbellekSayaçlar, kullanıcı tercihleri, son iyi yanıt

Ayarlar

Kullanıcının değiştirebileceği seçenekleri manifest.json'da tanımla; Adanotch Ayarlar › Eklentiler'de kontrolleri kendisi çizer.

manifest.json
"settings": [
  { "key": "showMemory", "type": "toggle", "label": "RAM'i göster", "default": true },
  { "key": "threshold", "type": "number", "label": "Uyarı eşiği", "default": 80, "unit": "%" },
  { "key": "city", "type": "text", "label": "Şehir", "default": "İstanbul" },
  { "key": "range", "type": "select", "label": "Aralık", "default": "day",
    "options": [{ "value": "day", "label": "Gün" }, { "value": "week", "label": "Hafta" }] },
  { "key": "token", "type": "secret", "label": "API anahtarı" }
]
interface Settings {
  showMemory: boolean;
  threshold: number;
  city: string;
  range: "day" | "week";
}

AdanotchKit.activity<Settings>({
  async onSettingsChange(ctx) {
    // Şehir değiştiyse eski önbelleği at.
    ctx.storage.remove("weather");
  },
  async update(ctx) {
    if (ctx.settings.showMemory) { /* … */ }
  },
});
  • Değerler ctx.settings içinde gelir ve her zaman güncel değerleri taşır.
  • Kullanıcı bir değeri değiştirdiğinde önce onSettingsChange, ardından update çalışır.
  • secret türü ctx.settings'te yoktur; await AdanotchKit.secrets.get("token") ile oku.

Ayar mı, eklenti içi kontrol mü

Nadiren değişen şeyler (şehir, API anahtarı, eşik) için ayar kullan. Sık değişen ya da anında görülmesi gereken şeyler için kartın içinde bir toggle, picker ya da slider koy ve değeri storage'da tut.

Bu sayfada