Sets a maximum age (minimum one day) for script storage values, after which they are deleted
Este script no debería instalarse directamente. Es una biblioteca que utilizan otros scripts mediante la meta-directiva de inclusión // @require https://update.greasyfork.org/scripts/562172/1881822/Temporary-Script-Storage.js
El almacenamiento establecido y accedido a través de una instancia de esta clase solo existirá durante el tiempo de vida que establezca en el constructor, aunque debe ser al menos un día. El valor predeterminado es 30 días. Después de ese tiempo, caducará y se eliminará cuando se llame a sweepExpiredEntries(), que puede programar con setInterval().
Esta biblioteca no tiene efecto en el almacenamiento de scripts establecido directamente a través de setValue() de GM de la manera usual. Ese almacenamiento se comportará normalmente.
Ejemplo de uso:
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 {}
Además, cualquier script que utilice esta biblioteca debe incluir los siguientes metadatos:
// @grant GM.getValue
// @grant GM.setValue
// @grant GM.deleteValue
// @grant GM.listValues
// @grant GM.info
Esto es necesario porque poner lo que cada biblioteca necesita en sus propios metadatos no es suficiente. El script de nivel superior debe proporcionar los @requires y @grants necesarios para todas sus dependencias.