diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:14:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:14:29 +0000 |
commit | fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 (patch) | |
tree | 4c1ccaf5486d4f2009f9a338a98a83e886e29c97 /toolkit/components/kvstore/kvstore.sys.mjs | |
parent | Releasing progress-linux version 124.0.1-1~progress7.99u1. (diff) | |
download | firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.tar.xz firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.zip |
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/components/kvstore/kvstore.sys.mjs')
-rw-r--r-- | toolkit/components/kvstore/kvstore.sys.mjs | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/toolkit/components/kvstore/kvstore.sys.mjs b/toolkit/components/kvstore/kvstore.sys.mjs index 838f68a5df..9085eed530 100644 --- a/toolkit/components/kvstore/kvstore.sys.mjs +++ b/toolkit/components/kvstore/kvstore.sys.mjs @@ -18,7 +18,8 @@ function promisify(fn, ...args) { * with a database's path and (optionally) its name: * * ``` - * ChromeUtils.import("resource://gre/modules/kvstore.jsm"); + * let { keyValueService } = + * ChromeUtils.importESModule("resource://gre/modules/kvstore.sys.mjs"); * let database = await KeyValueService.getOrCreate(path, name); * ``` * @@ -27,11 +28,32 @@ function promisify(fn, ...args) { */ export class KeyValueService { + static RecoveryStrategy = { + ERROR: gKeyValueService.ERROR, + DISCARD: gKeyValueService.DISCARD, + RENAME: gKeyValueService.RENAME, + }; + static async getOrCreate(dir, name) { return new KeyValueDatabase( await promisify(gKeyValueService.getOrCreate, dir, name) ); } + + static async getOrCreateWithOptions( + dir, + name, + { strategy = gKeyValueService.RENAME } = {} + ) { + return new KeyValueDatabase( + await promisify( + gKeyValueService.getOrCreateWithOptions, + dir, + name, + strategy + ) + ); + } } /** |