UNPKG

rsc-better-cache

Version:

a more flexible React Server Components cache, to avoid prop drilling

28 lines (24 loc) 814 B
// @ts-check import assert from 'node:assert'; import { test } from 'node:test'; import createCachedPromiseGetter from "./index.js"; test('Simplest use case', async () => { const timeout = setTimeout(() => { console.log('timeout'); }, 2000); /** * @typedef {object} MyData * @property {string} someProp */ const cache = (func) => { let cachedValue; const funcWithCache = (...args) => cachedValue ? cachedValue : (cachedValue = func(...args)); return funcWithCache; } const myDataPromiseGetter = /** @type {typeof createCachedPromiseGetter<MyData>} */(createCachedPromiseGetter)(cache); const obj = {someProp: "some value"}; myDataPromiseGetter().resolve(obj); const myData = await myDataPromiseGetter(); assert.strictEqual(myData, obj); clearTimeout(timeout); });