keyv 5.1.1 → 5.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -68,6 +68,13 @@ var EventManager = class {
68
68
  this._eventListeners.delete(event);
69
69
  }
70
70
  }
71
+ once(event, listener) {
72
+ const onceListener = (...arguments_) => {
73
+ listener(...arguments_);
74
+ this.off(event, onceListener);
75
+ };
76
+ this.on(event, onceListener);
77
+ }
71
78
  // Emit an event
72
79
  emit(event, ...arguments_) {
73
80
  const listeners = this._eventListeners.get(event);
@@ -424,12 +431,13 @@ var Keyv = class extends event_manager_default {
424
431
  const promises = keyPrefixed2.map(async (key2) => store.delete(key2));
425
432
  const results = await Promise.allSettled(promises);
426
433
  const returnResult = results.every((x) => x.value === true);
427
- this.hooks.trigger("postDelete" /* POST_DELETE */, returnResult);
434
+ this.hooks.trigger("postDelete" /* POST_DELETE */, { key: keyPrefixed2, value: returnResult });
428
435
  return returnResult;
429
436
  }
430
437
  const keyPrefixed = this._getKeyPrefix(key);
431
- const result = store.delete(keyPrefixed);
432
- this.hooks.trigger("postDelete" /* POST_DELETE */, result);
438
+ this.hooks.trigger("preDelete" /* PRE_DELETE */, { key: keyPrefixed });
439
+ const result = await store.delete(keyPrefixed);
440
+ this.hooks.trigger("postDelete" /* POST_DELETE */, { key: keyPrefixed, value: result });
433
441
  this.stats.delete();
434
442
  return result;
435
443
  }
package/dist/index.d.cts CHANGED
@@ -8,6 +8,7 @@ declare class EventManager {
8
8
  on(event: string, listener: EventListener): void;
9
9
  removeListener(event: string, listener: EventListener): void;
10
10
  off(event: string, listener: EventListener): void;
11
+ once(event: string, listener: EventListener): void;
11
12
  emit(event: string, ...arguments_: any[]): void;
12
13
  listeners(event: string): EventListener[];
13
14
  removeAllListeners(event?: string): void;
package/dist/index.d.ts CHANGED
@@ -8,6 +8,7 @@ declare class EventManager {
8
8
  on(event: string, listener: EventListener): void;
9
9
  removeListener(event: string, listener: EventListener): void;
10
10
  off(event: string, listener: EventListener): void;
11
+ once(event: string, listener: EventListener): void;
11
12
  emit(event: string, ...arguments_: any[]): void;
12
13
  listeners(event: string): EventListener[];
13
14
  removeAllListeners(event?: string): void;
package/dist/index.js CHANGED
@@ -42,6 +42,13 @@ var EventManager = class {
42
42
  this._eventListeners.delete(event);
43
43
  }
44
44
  }
45
+ once(event, listener) {
46
+ const onceListener = (...arguments_) => {
47
+ listener(...arguments_);
48
+ this.off(event, onceListener);
49
+ };
50
+ this.on(event, onceListener);
51
+ }
45
52
  // Emit an event
46
53
  emit(event, ...arguments_) {
47
54
  const listeners = this._eventListeners.get(event);
@@ -398,12 +405,13 @@ var Keyv = class extends event_manager_default {
398
405
  const promises = keyPrefixed2.map(async (key2) => store.delete(key2));
399
406
  const results = await Promise.allSettled(promises);
400
407
  const returnResult = results.every((x) => x.value === true);
401
- this.hooks.trigger("postDelete" /* POST_DELETE */, returnResult);
408
+ this.hooks.trigger("postDelete" /* POST_DELETE */, { key: keyPrefixed2, value: returnResult });
402
409
  return returnResult;
403
410
  }
404
411
  const keyPrefixed = this._getKeyPrefix(key);
405
- const result = store.delete(keyPrefixed);
406
- this.hooks.trigger("postDelete" /* POST_DELETE */, result);
412
+ this.hooks.trigger("preDelete" /* PRE_DELETE */, { key: keyPrefixed });
413
+ const result = await store.delete(keyPrefixed);
414
+ this.hooks.trigger("postDelete" /* POST_DELETE */, { key: keyPrefixed, value: result });
407
415
  this.stats.delete();
408
416
  return result;
409
417
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keyv",
3
- "version": "5.1.1",
3
+ "version": "5.1.3",
4
4
  "description": "Simple key-value storage with support for multiple backends",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",