summaryrefslogtreecommitdiffstats
path: root/toolkit/components/kvstore/kvstore.sys.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/kvstore/kvstore.sys.mjs')
-rw-r--r--toolkit/components/kvstore/kvstore.sys.mjs24
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
+ )
+ );
+ }
}
/**