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
Это необходимо, потому что указание требований каждой библиотеки в её собственных метаданных недостаточно. Скрипт верхнего уровня должен предоставить необходимые @require и @grant для всех своих зависимостей.