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
このクラスのインスタンスを通じて設定およびアクセスされるストレージは、コンストラクタで設定した有効期間だけ保持されます。ただし、最低でも1日である必要があります。デフォルトは30日です。その後、sweepExpiredEntries()が呼び出されるとストレージは期限切れになり削除されます。これはsetInterval()でスケジュール設定できます。
このライブラリは、GM の 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を提供する必要があります。