Sets a maximum age (minimum one day) for script storage values, after which they are deleted
Ce script ne doit pas être installé directement. C'est une librairie destinée à être incluse dans d'autres scripts avec la méta-directive // @require https://update.greasyfork.org/scripts/562172/1881822/Temporary-Script-Storage.js
Le stockage défini et consulté via une instance de cette classe n'existera que aussi longtemps que la durée de vie que vous définissez dans le constructeur, bien qu'il doive être d'au moins un jour. La valeur par défaut est 30 jours. Après ce délai, il expirera et sera supprimé lorsque sweepExpiredEntries() est appelé, ce que vous pouvez programmer avec setInterval().
Cette bibliothèque n'a aucun effet sur le stockage de script défini directement via setValue() de GM de la manière habituelle. Un tel stockage se comportera normalement.
Exemple d'utilisation:
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 {}
De plus, tout script utilisant cette bibliothèque doit inclure les métadonnées suivantes:
// @grant GM.getValue
// @grant GM.setValue
// @grant GM.deleteValue
// @grant GM.listValues
// @grant GM.info
Cela est nécessaire car placer ce que chaque bibliothèque nécessite dans ses propres métadonnées n'est pas suffisant. Le script de niveau supérieur doit fournir les @requires et @grants nécessaires pour toutes ses dépendances.