Sets a maximum age (minimum one day) for script storage values, after which they are deleted
Ten skrypt nie powinien być instalowany bezpośrednio. Jest to biblioteka dla innych skyptów do włączenia dyrektywą meta // @require https://update.greasyfork.org/scripts/562172/1881822/Temporary-Script-Storage.js
Pamięć masowa ustawiona i dostępna poprzez instancję tej klasy będzie istnieć tylko tak długo, jak długość życia ustawiona w konstruktorze, chociaż musi wynosić co najmniej jeden dzień. Domyślnie wynosi 30 dni. Po tym czasie wygaśnie i zostanie usunięta, gdy zostanie wywołana funkcja sweepExpiredEntries(), którą możesz zaplanować za pomocą setInterval().
Ta biblioteka nie ma wpływu na magazyn skryptów ustawiony bezpośrednio za pomocą setValue() GM w zwykły sposób. Taki magazyn będzie zachowywać się normalnie.
Przykład użycia:
const persistentStorage = new TTLStorage();
await persistentStorage.ready();
setInterval(() => persistentStorage.sweepExpiredEntries(), 1000 * 60 * 60 * 24);
try {
await persistentStorage.set("key1", "hello"); // throws
const msg = persistentStorage.get("key1"); // fast memory read
await persistentStorage.delete("key1"); // throws
} catch {}
Ponadto każdy skrypt korzystający z tej biblioteki musi zawierać następujące metadane:
// @grant GM.getValue
// @grant GM.setValue
// @grant GM.deleteValue
// @grant GM.listValues
// @grant GM.info
Jest to konieczne, ponieważ umieszczenie tego, czego każda biblioteka potrzebuje we własnych metadanych, nie jest wystarczające. Skrypt najwyższego poziomu musi dostarczyć niezbędne @require i @grant dla wszystkich swoich zależności.