Sets a maximum age (minimum one day) for script storage values, after which they are deleted
Dette script bør ikke installeres direkte. Det er et bibliotek, som andre scripts kan inkludere med metadirektivet // @require https://update.greasyfork.org/scripts/562172/1881822/Temporary-Script-Storage.js
Lagerplads sat og tilgået gennem en instans af denne klasse vil kun eksistere så længe den levetid, du angiver i konstruktøren, selvom den skal være mindst en dag. Standarden er 30 dage. Herefter udløber den og slettes, når sweepExpiredEntries() kaldes, hvilket du kan planlægge med setInterval().
Dette bibliotek har ingen virkning på scriptlagerplads sat direkte gennem setValue() på GM på den sædvanlige måde. Sådan lagerplads vil opføre sig normalt.
Eksempel på brug:
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 {}
Desuden skal ethvert script, der bruger dette bibliotek, indeholde følgende metadata:
// @grant GM.getValue
// @grant GM.setValue
// @grant GM.deleteValue
// @grant GM.listValues
// @grant GM.info
Dette er nødvendigt, fordi det at placere det, som hvert bibliotek har brug for i dets eget metadata, ikke er nok. Det øverste scriptniveau skal levere de nødvendige @requires og @grants til alle dets afhængigheder.