Sets a maximum age (minimum one day) for script storage values, after which they are deleted
Detta skript bör inte installeras direkt. Det är ett bibliotek för andra skript att inkludera med meta-direktivet // @require https://update.greasyfork.org/scripts/562172/1881822/Temporary-Script-Storage.js
Lagring som ställs in och nås genom en instans av denna klass kommer bara att existera så länge som livslängden du angav i konstruktorn, även om den måste vara minst en dag. Standardvärdet är 30 dagar. Efter det kommer det att förfalla och raderas när sweepExpiredEntries() anropas, vilket du kan schemalägga med setInterval().
Detta bibliotek har ingen effekt på skriptlagring som ställs in direkt genom GM:s setValue() på det vanliga sättet. Sådan lagring kommer att bete sig normalt.
Exempel på användning:
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 {}
Dessutom måste alla skript som använder detta bibliotek innehålla följande metadata:
// @grant GM.getValue
// @grant GM.setValue
// @grant GM.deleteValue
// @grant GM.listValues
// @grant GM.info
Detta är nödvändigt eftersom det inte räcker att sätta vad varje bibliotek behöver i sina egna metadata. Skriptet på toppnivå måste tillhandahålla de nödvändiga @require och @grant för alla dess beroenden.