From 086c044dc34dfc0f74fbe41f4ecb402b2cd34884 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 03:13:33 +0200 Subject: Merging upstream version 125.0.1. Signed-off-by: Daniel Baumann --- toolkit/components/kvstore/kvstore.sys.mjs | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'toolkit/components/kvstore/kvstore.sys.mjs') 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 + ) + ); + } } /** -- cgit v1.2.3