Sets a maximum age (minimum one day) for script storage values, after which they are deleted
Dit script moet niet direct worden geïnstalleerd - het is een bibliotheek voor andere scripts om op te nemen met de meta-richtlijn // @require https://update.greasyfork.org/scripts/562172/1881822/Temporary-Script-Storage.js
Opslag ingesteld en geopend via een instantie van deze klasse zal slechts zo lang bestaan als de levensduur die u in de constructor instelt, hoewel deze minstens één dag moet zijn. De standaardwaarde is 30 dagen. Daarna vervalt het en wordt het verwijderd wanneer sweepExpiredEntries() wordt aangeroepen, wat u kunt plannen met setInterval().
Deze bibliotheek heeft geen effect op scriptopslag die rechtstreeks via GM's setValue() op de gebruikelijke manier is ingesteld. Dergelijke opslag gedraagt zich normaal.
Voorbeeld van gebruik:
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 {}
Bovendien moet elk script dat deze bibliotheek gebruikt de volgende metadata bevatten:
// @grant GM.getValue
// @grant GM.setValue
// @grant GM.deleteValue
// @grant GM.listValues
// @grant GM.info
Dit is noodzakelijk omdat het niet voldoende is om in elk bibliotheekmetadata op te nemen wat nodig is. Het script op het hoogste niveau moet de noodzakelijke @requires en @grants voor al zijn afhankelijkheden verstrekken.