Browse Source

Feat: empty namespaces

Originally authored by https://github.com/vitormv in fdc9acbff6

Signed-off-by: Jytesh <44925963+Jytesh@users.noreply.github.com>
emp
Jytesh 3 years ago
parent
commit
ac74754f2e
  1. 2
      packages/keyv/src/index.js
  2. 21
      packages/keyv/test/keyv.js

2
packages/keyv/src/index.js

@ -54,7 +54,7 @@ class Keyv extends EventEmitter {
} }
_getKeyPrefix(key) { _getKeyPrefix(key) {
return `${this.options.namespace}:${key}`; return this.opts.namespace ? `${this.opts.namespace}:${key}` : key;
} }
_getKeyUnprefix(key) { _getKeyUnprefix(key) {

21
packages/keyv/test/keyv.js

@ -124,5 +124,26 @@ test.serial('Keyv supports async serializer/deserializer', async t => {
t.is(await keyv.get('foo'), 'bar'); t.is(await keyv.get('foo'), 'bar');
}); });
test.serial('Keyv uses a default namespace', async t => {
const store = new Map();
const keyv = new Keyv({ store });
await keyv.set('foo', 'bar');
t.is([...store.keys()][0], 'keyv:foo');
});
test.serial('Default namespace can be overridden', async t => {
const store = new Map();
const keyv = new Keyv({ store, namespace: 'magic' });
await keyv.set('foo', 'bar');
t.is([...store.keys()][0], 'magic:foo');
});
test.serial('An empty namespace stores the key as-is', async t => {
const store = new Map();
const keyv = new Keyv({ store, namespace: '' });
await keyv.set(42, 'foo');
t.is([...store.keys()][0], 42);
});
const store = () => new Map(); const store = () => new Map();
keyvTestSuite(test, Keyv, store); keyvTestSuite(test, Keyv, store);

Loading…
Cancel
Save