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().
Ця бібліотека не впливає на сховище, встановлене безпосередньо через GM's setValue() звичайним способом. Таке сховище працюватиме нормально.
Приклад використання:
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 для всіх своїх залежностей.