Sets a maximum age (minimum one day) for script storage values, after which they are deleted
Hindi dapat direktang i-install ang script na ito. Ito ay isang library para sa iba pang mga script na isasama sa meta directive. // @require https://update.greasyfork.org/scripts/562172/1881822/Temporary-Script-Storage.js
Ang storage na itinakda at na-access sa pamamagitan ng isang instance ng class na ito ay magiging umiiral lamang hangga't ang lifetime na itinakda mo sa constructor, bagaman dapat ito ay hindi bababa sa isang araw. Ang default ay 30 araw. Pagkatapos ng oras na iyon, ito ay mag-expire at mababura kapag tinawag ang sweepExpiredEntries(), na maaari mong i-schedule gamit ang setInterval().
Ang library na ito ay walang epekto sa storage ng script na itinakda nang direkta sa pamamagitan ng setValue() ng GM sa karaniwang paraan. Ang ganitong storage ay magsasagawa ng normal.
Halimbawa ng paggamit:
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 {}
Bilang karagdagan, ang anumang script na gumagamit ng library na ito ay dapat magsama ng mga sumusunod na metadata:
// @grant GM.getValue
// @grant GM.setValue
// @grant GM.deleteValue
// @grant GM.listValues
// @grant GM.info
Ito ay kinakailangan dahil ang paglagay ng kailangan ng bawat library sa sarili nitong metadata ay hindi sapat. Ang script sa pinakamataas na antas ay dapat magbigay ng kinakailangang @requires at @grants para sa lahat ng mga dependency nito.