Sets a maximum age (minimum one day) for script storage values, after which they are deleted
Dette scriptet burde ikke installeres direkte. Det er et bibliotek for andre script å inkludere med det nye metadirektivet // @require https://update.greasyfork.org/scripts/562172/1881822/Temporary-Script-Storage.js
Lagring satt og åpnet gjennom en instans av denne klassen vil bare vare så lenge som levetiden du setter i konstruktøren, selv om den må være minst en dag. Standarden er 30 dager. Etter det vil den utløpe og bli slettet når sweepExpiredEntries() kalles, som du kan planlegge med setInterval().
Dette biblioteket har ingen effekt på skriptlagring satt direkte gjennom GM sin setValue() på den vanlige måten. Slik lagring vil oppføre seg normalt.
Eksempel på bruk:
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 {}
I tillegg må ethvert skript som bruker dette biblioteket inkludere følgende metadata:
// @grant GM.getValue
// @grant GM.setValue
// @grant GM.deleteValue
// @grant GM.listValues
// @grant GM.info
Dette er nødvendig fordi det ikke er nok å legge det som hvert bibliotek trenger i sitt eget metadata. Skriptet på toppnivå må gi de nødvendige @requires og @grants for alle dets avhengigheter.