0.9.0 • Published 9 months ago

frescas v0.9.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
9 months ago

frescas

Self-refreshable in-memory data cache.

  • FreshValue and AsyncFreshValue - single refreshable value.
  • FreshValueMap and AsyncFreshValueMap - maps of refreshable values.

Usage example:

/** Create a refreshable value. Define `load` function and use correct `refreshPeriodMillis` interval. */
const currentAccessToken = new AsyncFreshValue({
        refreshPeriodMillis: 0,
        load: async (settings) => {
            const response = await fetchAccessToken(/*....*/);
            settings.refreshPeriodMillis = Date.now() - response.expirationTime;
            return response.token;
        }
    });

// Use the fresh value :

async function getA(): A {
    const accessToken: string = await currentAccessToken.get();
    return fetch(accessToken, /** A-call params.*/);
}

async function getB(): B {
    const accessToken: string = await currentAccessToken.get();
    return fetch(accessToken, /** B-call params.*/);
}

Docs & tests

Check in-code documentation and tests: