Skip to content

Releases: jaredwray/cacheable

2026-05-27

27 May 15:39
069f734

Choose a tag to compare

Releasing 8 packages: @cacheable/memory@2.1.0 (minor), @cacheable/node-cache@3.1.0 (minor), cacheable@2.4.0 (minor), cache-manager@7.2.9 (patch), file-entry-cache@11.1.4 (patch), flat-cache@6.1.23 (patch), @cacheable/net@2.0.9 (patch), @cacheable/utils@2.4.2 (patch).

@cacheable/memory@2.1.0 — 2026-05-27

Add lifecycle hooks and maxTtl cap to CacheableMemory.

Features

  • add hooks for all cache operations via CacheableMemoryHooks enum (1ff149d, #1644)

    import { CacheableMemory, CacheableMemoryHooks } from '@cacheable/memory';
    const cache = new CacheableMemory();
    cache.onHookSync(CacheableMemoryHooks.BEFORE_SET, (data) => {
      data.value = transform(data.value); // mutate before write
    });
    cache.set('key', 'value');
  • add maxTtl option to cap maximum time-to-live (948234a, #1645)

    const cache = new CacheableMemory({ ttl: '10m', maxTtl: '1h' });
    cache.set('key', 'value', '2h'); // capped to 1h
    cache.set('key2', 'value2');     // no TTL → capped to 1h

Internal

  • migrate build from tsup to tsdown, pnpm 11 (1508695, #1642)

Contributors

Full List of Changes

  • feat(cacheable, memory): add maxTtl option to cap maximum time-to-live by @jaredwray in #1645
  • feat(@cacheable/memory): add hooks like cacheable by @jaredwray in #1644
  • feat: Migrate to pnpm 11 with corepack and tsdown from tsup by @jaredwray in #1642

Full diff: 9346f94...release/2026-05-27-8-packages


@cacheable/node-cache@3.1.0 — 2026-05-27

Add keys/has/getTtl/flushAll, events, useClones, checkperiod, and fix multiple stat-tracking bugs.

Features

  • add keys() and has() methods for cache inspection (bf3ea48, #1643)

    const store = new NodeCacheStore();
    await store.set('a', 1);
    await store.keys();    // ['a']
    await store.has('a');  // true
  • add getTtl() to inspect key expiration timestamps (bf3ea48, #1643)

    await store.set('key', 'val', 5000);
    const ttl = await store.getTtl('key'); // ms timestamp when key expires
  • add flushAll() to clear data and reset all stats (bf3ea48, #1643)

    await store.flushAll(); // clears data + resets stats, emits "flush"
  • add event emitters for set, del, expired, and flush operations (bf3ea48, #1643)

    store.on('set', (key, value, ttl) => { /* ... */ });
    store.on('del', (key, value) => { /* ... */ });
    store.on('expired', (key, value) => { /* ... */ });
    store.on('flush', () => { /* ... */ });
  • add useClones option for deep-cloning via structuredClone (bf3ea48, #1643)

    const store = new NodeCacheStore({ useClones: true });
  • add checkperiod option for interval-based expired item detection (bf3ea48, #1643)

    const store = new NodeCacheStore({ checkperiod: 60 }); // check every 60s
    store.close(); // stop interval
  • add deleteOnExpire option and close()/getIntervalId() lifecycle methods (bf3ea48, #1643)

Bug Fixes

  • fix setTtl() treating falsy cached values (0, "", false, null) as non-existent (bf3ea48, #1643)
  • fix mdel() firing stats and events for non-existent keys (bf3ea48, #1643)
  • fix startInterval() leaking old timer when called twice (bf3ea48, #1643)
  • fix set() double-counting stats on key overwrites (bf3ea48, #1643)
  • fix checkData() swallowing unhandled promise rejections (bf3ea48, #1643)
  • fix handleExpired() stats underflow when Keyv auto-expires items (bf3ea48, #1643)
  • fix checkData() mutating Map during iteration (bf3ea48, #1643)

Internal

Contributors

Full List of Changes

  • feat(@cacheable/node-cache): enhance NodeCacheStore with missing features by @jaredwray in #1643
  • feat: Migrate to pnpm 11 with corepack and tsdown from tsup by @jaredwray in #1642
  • @cacheable/node-cache: move store tests to use @faker-js/faker by @jaredwray in #1641

Full diff: 9346f94...release/2026-05-27-8-packages


cacheable@2.4.0 — 2026-05-27

Add maxTtl option to enforce an upper bound on cache entry lifetimes.

Features

  • add maxTtl option to cap maximum time-to-live on set() and setMany() (948234a, #1645)

    import { Cacheable } from 'cacheable';
    const cache = new Cacheable({ ttl: '10m', maxTtl: '1h' });
    await cache.set('key', 'value', '2h'); // capped to 1h
    await cache.set('key2', 'value2');     // no TTL → capped to 1h

Internal

  • migrate build from tsup to tsdown, pnpm 11 (1508695, #1642)

Contributors

Full List of Changes

  • feat(cacheable, memory): add maxTtl option to cap maximum time-to-live by @jaredwray in #1645
  • feat: Migrate to pnpm 11 with corepack and tsdown from tsup by @jaredwray in #1642

Full diff: 9346f94...release/2026-05-27-8-packages


cache-manager@7.2.9 — 2026-05-27

Build tooling migration to tsdown and pnpm 11.

Internal

  • migrate build from tsup to tsdown, pnpm 11 (1508695, #1642)

Contributors

Full List of Changes

  • feat: Migrate to pnpm 11 with corepack and tsdown from tsup by @jaredwray in #1642

Full diff: 9346f94...release/2026-05-27-8-packages


file-entry-cache@11.1.4 — 2026-05-27

Build tooling migration to tsdown and pnpm 11.

Internal

  • migrate build from tsup to tsdown, pnpm 11 (1508695, #1642)

Contributors

Full List of Changes

  • feat: Migrate to pnpm 11 with corepack and tsdown from tsup by @jaredwray in #1642

Full diff: 9346f94...release/2026-05-27-8-packages


flat-cache@6.1.23 — 2026-05-27

Build tooling migration to tsdown and pnpm 11.

Internal

  • migrate build from tsup to tsdown, pnpm 11 (1508695, #1642)

Contributors

Full List of Changes

  • feat: Migrate to pnpm 11 with corepack and tsdown from tsup by @jaredwray in #1642

Full diff: 9346f94...release/2026-05-27-8-packages


@cacheable/net@2.0.9 — 2026-05-27

Build tooling migration to tsdown and pnpm 11.

Internal

  • migrate build from tsup to tsdown, pnpm 11 (1508695, #1642)

Contributors

Full List of Changes

  • feat: Migrate to pnpm 11 with corepack and tsdown from tsup by @jaredwray in #1642

Full diff: 9346f94...release/2026-05-27-8-packages


@cacheable/utils@2.4.2 — 2026-05-27

Build tooling migration to tsdown and pnpm 11.

Internal

  • migrate build from tsup to tsdown, pnpm 11 (1508695, #1642)

Contributors

Full List of Changes

  • feat: Migrate to pnpm 11 with corepack and tsdown from tsup by @jaredwray in #1642

Full diff: 9346f94...release/2026-05-27-8-packages

2026-05-16

16 May 23:04
9346f94

Choose a tag to compare

@cacheable/net@2.0.8

Fix FormData/Blob/URLSearchParams bodies by routing through the runtime's own fetch so the body classes share a realm with the fetch implementation.

Bug Fixes

  • send FormData/Blob correctly using the runtime's own fetch (7cbe243, #1636)

Contributors

@cacheable/memory@2.0.9

Clarify in the README that lruSize=0 disables LRU.

Documentation

  • clarify that lruSize=0 disables LRU (2abfb68, #1638)

Contributors

Full diff: 2026-05-07...2026-05-16

2026-05-07

07 May 19:44

Choose a tag to compare

What's Changed

Full Changelog: 2026-03-26...2026-05-07

2026-03-26

27 Mar 02:26
6292b97

Choose a tag to compare

What's Changed

Full Changelog: 2026-03-17...2026-03-26

2026-03-17

17 Mar 23:43
7f9d958

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2026-02-27...2026-03-17

2026-02-27

27 Feb 16:33
b1a1f4e

Choose a tag to compare

What's Changed

Full Changelog: 2026-02-06...2026-02-27

2026-02-06

06 Feb 22:50
af10eb6

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2025-01-17...2026-02-06

2025-01-17

17 Jan 17:24
8e8ee2b

Choose a tag to compare

What's Changed

Full Changelog: 2026-01-09...2025-01-17

2026-01-09

09 Jan 21:01
8087e05

Choose a tag to compare

What's Changed

Full Changelog: 2025-12-26...2026-01-09

2025-12-26

26 Dec 23:55
c2a3d64

Choose a tag to compare

What's Changed

Full Changelog: 2025-12-16...2025-12-26