Skip to content

v6.0.0-beta.4

Latest

Choose a tag to compare

@jaredwray jaredwray released this 18 Jun 22:23
· 2 commits to main since this release
088b23d

Keyv v6.0.0-beta.4 — 2026-06-18

Finalize the v6 storage-adapter API (ttl → expires) and complete the cross-adapter code/test review.

⚠ BREAKING CHANGES

  • Storage adapters now use expires (absolute epoch-ms timestamp) instead of a relative ttl. (da9c08f, #1981)
    Migration: if you call a storage adapter directly or implement a custom one, read the absolute expires value from the entry envelope instead of accepting a ttl argument. The Keyv core API is unchanged — it continues to derive expires from the value envelope, so typical keyv.set(key, value, ttl) usage is unaffected.

Features

  • bigmap: wire up Hookified events — BigMap now emits SET, DELETE, and CLEAR via the new BigMapEvents enum. (b88d03f, #1977)

    import { BigMap, BigMapEvents } from '@keyv/bigmap';
    
    const map = new BigMap<string>();
    map.on(BigMapEvents.SET, (key, value) => console.log('set', key, value));
    map.on(BigMapEvents.DELETE, (key) => console.log('deleted', key));
    
    map.set('a', '1');  // → "set a 1"
    map.delete('a');    // → "deleted a"

    Also renames the exported MapInterfacee type to MapInterface (typo fix — safe within the v6 beta).

Bug Fixes

  • etcd: support the grpc-gateway v2 error format for etcd 3.6 compatibility. (dcb64bd, #1964)
  • dynamo: strip the namespace prefix in the iterator and align tests/docs. (75198aa, #1965)
  • etcd: return undefined for missing values and align tests/docs. (1e84580, #1966)
  • mysql: return undefined instead of null, guard getMany, and align tests/docs. (d76926b, #1969)

Documentation

  • keyv: fix README API accuracy and strengthen the code/test review. (685bc77, #1979)
  • keyv: add a jsDelivr badge to the README. (418ce7a, #1963)

Internal

  • dynamo: code clean up and minor fixes. (9048a87, #1970)
  • etcd: code clean up and documentation. (aed5638, #1972)
  • postgres: code/test review for @keyv/postgres. (9fa6847, #1971)
  • redis: full code and test review cleanup. (480a560, #1974)
  • memcache: add an error handler. (394e254, #1973)
  • memcache: uniform test suite, fix namespace docs, validate API. (95612fc, #1967)
  • mongo: uniform test suite, fix README API docs. (0240400, #1968)
  • mongo: documentation and fixes (includes #1980 review follow-ups). (f31850d, #1976)
  • sqlite: full code and test review cleanup. (8539cfd, #1975)
  • valkey: full code and test review. (e8a3ffa, #1978)

Contributors

Full List of Changes

  • feat: adding in jsDelivr badge for Keyv by @jaredwray in #1963
  • etcd - fix: support grpc-gateway v2 error format for etcd 3.6 compatibility by @jaredwray in #1964
  • dynamo - fix: strip namespace prefix in iterator and align tests/docs by @jaredwray in #1965
  • etcd - fix: return undefined for missing values and align tests/docs by @jaredwray in #1966
  • memcache - test: uniform test suite, fix namespace docs, validate API by @jaredwray in #1967
  • mongo - test: uniform test suite, fix README API docs by @jaredwray in #1968
  • mysql - fix: return undefined not null, guard getMany, and align tests/docs by @jaredwray in #1969
  • dynamo - chore: code clean up and minor fixes by @jaredwray in #1970
  • etcd - chore: code clean up and documentation by @jaredwray in #1972
  • postgres - refactor: code/test review for @keyv/postgres by @jaredwray in #1971
  • redis - chore: full code and test review cleanup by @jaredwray in #1974
  • memcache - chore: adding in error handler by @jaredwray in #1973
  • sqlite - refactor: full code and test review cleanup by @jaredwray in #1975
  • keyv - docs: fix README API accuracy and strengthen code/test review by @jaredwray in #1979
  • valkey - refactor: full code and test review by @jaredwray in #1978
  • bigmap - feat: wire up hookified events and complete code/test review by @jaredwray in #1977
  • mongo - chore: documentation and fixes by @jaredwray in #1976
  • keyv (breaking) - storage adapters now only use expires instead of ttl by @jaredwray in #1981

Full diff: v6.0.0-beta.3...v6.0.0-beta.4