Sets a maximum age (minimum one day) for script storage values, after which they are deleted
Questo script non dovrebbe essere installato direttamente. È una libreria per altri script da includere con la chiave // @require https://update.greasyfork.org/scripts/562172/1881822/Temporary-Script-Storage.js
L'archiviazione impostata e accessibile tramite un'istanza di questa classe vivrà solo finché la durata che hai impostato nel costruttore, anche se deve essere almeno un giorno. L'impostazione predefinita è 30 giorni. Dopo di che, scadrà e verrà eliminata quando viene chiamato sweepExpiredEntries(), che puoi pianificare con setInterval().
Questa libreria non ha alcun effetto sull'archiviazione degli script impostata direttamente tramite setValue() di GM nel modo consueto. Tale archiviazione si comporterà normalmente.
Esempio di utilizzo:
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 {}
Inoltre, qualsiasi script che utilizza questa libreria deve includere i seguenti metadati:
// @grant GM.getValue
// @grant GM.setValue
// @grant GM.deleteValue
// @grant GM.listValues
// @grant GM.info
Questo è necessario perché inserire ciò di cui ogni libreria ha bisogno nei propri metadati non è sufficiente. Lo script di primo livello deve fornire i necessari @requires e @grants per tutte le sue dipendenze.