Sets a maximum age (minimum one day) for script storage values, after which they are deleted
Този скрипт не може да бъде инсталиран директно. Това е библиотека за други скриптове и може да бъде използвана с мета-директива // @require https://update.greasyfork.org/scripts/562172/1881822/Temporary-Script-Storage.js
Хранилището, зададено и осъществено чрез екземпляр на този клас, ще съществува само толкова време, колкото е зададено в конструктора, макар че трябва да бъде поне един ден. По подразбиране е 30 дни. След това време ще изтече и ще бъде изтрито, когато се извика sweepExpiredEntries(), което можете да планирате с setInterval().
Тази библиотека няма ефект на хранилището, зададено директно чрез setValue() на GM по обичайния начин. Такова хранилище ще функционира нормално.
Пример за използване:
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 {}
Допълнително, всеки скрипт, който използва тази библиотека, трябва да включва следния метаданни:
// @grant GM.getValue
// @grant GM.setValue
// @grant GM.deleteValue
// @grant GM.listValues
// @grant GM.info
Това е необходимо, защото поставянето на това, което всяка библиотека се нуждае в собствените си метаданни, не е достатъчно. Скриптът от най-висок ниво трябва да осигури необходимите @requires и @grants за всички свои зависимости.