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:
Datemetne dönüşür,Map,Setve 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şkeni | storage | |
|---|---|---|
| Hız | En hızlı | Hızlı (bellekte, arka planda diske yazılır) |
| Yeniden başlatmada | Sıfırlanır | Kalır |
| Uygun | Son 30 ölçüm, önbellek | Sayaç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.
"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.settingsiçinde gelir ve her zaman güncel değerleri taşır. - Kullanıcı bir değeri değiştirdiğinde önce
onSettingsChange, ardındanupdateçalışır. secrettü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.