From 9c5b96305ac9d5c708c4fa3215a323d05fb71d4a Mon Sep 17 00:00:00 2001 From: KernelDeimos <7225168+KernelDeimos@users.noreply.github.com> Date: Fri, 3 Oct 2025 16:52:31 -0400 Subject: [PATCH] example(extensions): [+] example-kv --- extensions/example-kv.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 extensions/example-kv.js diff --git a/extensions/example-kv.js b/extensions/example-kv.js new file mode 100644 index 000000000..e1e746534 --- /dev/null +++ b/extensions/example-kv.js @@ -0,0 +1,30 @@ +const { kv } = extension.import('data'); +const { sleep } = extension.import('utilities'); + +// "kv" is load ready to use before the 'init' event is fired. +extension.on('init', async () => { + kv.set('example-kv-key', 'example-kv-value'); + + console.log('kv key has', await kv.get('example-kv-key')); + + await kv.expire({ + key: 'example-kv-key', + ttl: 1000 * 60, // 1 minute + }); + + // This AIIFE demonstrates how "kv.expire" works. + // We cannot simply "await" this - otherwise we block init! + (async () => { + // wait for 30 seconds... + await sleep(30 * 1000); + + console.log('kv key still has value', await kv.get('example-kv-key')); + + // wait for 30 more seconds + await sleep(30 * 1000); + // and just a little bit longer + // await sleep(100); + + console.log('kv key should no longer have the value', kv.get('example-kv-key')); + })(); +});