Skip to content

Commit 4c3f383

Browse files
authored
[file_packager] Convert openDatabase to async/await. NFC (#24883)
Followup to #24882
1 parent 14dd929 commit 4c3f383

File tree

1 file changed

+24
-26
lines changed

1 file changed

+24
-26
lines changed

tools/file_packager.py

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -805,34 +805,32 @@ def generate_js(data_target, data_files, metadata):
805805
var DB_VERSION = 1;
806806
var METADATA_STORE_NAME = 'METADATA';
807807
var PACKAGE_STORE_NAME = 'PACKAGES';
808-
function openDatabase(callback, errback) {
808+
async function openDatabase() {
809809
if (typeof indexedDB == 'undefined') {
810810
return errback('using IndexedDB to cache data can only be done on a web page or in a web worker');
811811
}
812-
try {
812+
return new Promise((resolve, reject) => {
813813
var openRequest = indexedDB.open(DB_NAME, DB_VERSION);
814-
} catch (e) {
815-
return errback(e);
816-
}
817-
openRequest.onupgradeneeded = (event) => {
818-
var db = /** @type {IDBDatabase} */ (event.target.result);
814+
openRequest.onupgradeneeded = (event) => {
815+
var db = /** @type {IDBDatabase} */ (event.target.result);
819816
820-
if (db.objectStoreNames.contains(PACKAGE_STORE_NAME)) {
821-
db.deleteObjectStore(PACKAGE_STORE_NAME);
822-
}
823-
var packages = db.createObjectStore(PACKAGE_STORE_NAME);
817+
if (db.objectStoreNames.contains(PACKAGE_STORE_NAME)) {
818+
db.deleteObjectStore(PACKAGE_STORE_NAME);
819+
}
820+
var packages = db.createObjectStore(PACKAGE_STORE_NAME);
824821
825-
if (db.objectStoreNames.contains(METADATA_STORE_NAME)) {
826-
db.deleteObjectStore(METADATA_STORE_NAME);
827-
}
828-
var metadata = db.createObjectStore(METADATA_STORE_NAME);
829-
};
830-
openRequest.onsuccess = (event) => {
831-
var db = /** @type {IDBDatabase} */ (event.target.result);
832-
callback(db);
833-
};
834-
openRequest.onerror = (error) => errback(error);
835-
};
822+
if (db.objectStoreNames.contains(METADATA_STORE_NAME)) {
823+
db.deleteObjectStore(METADATA_STORE_NAME);
824+
}
825+
var metadata = db.createObjectStore(METADATA_STORE_NAME);
826+
};
827+
openRequest.onsuccess = (event) => {
828+
var db = /** @type {IDBDatabase} */ (event.target.result);
829+
resolve(db);
830+
};
831+
openRequest.onerror = reject;
832+
});
833+
}
836834
837835
// This is needed as chromium has a limit on per-entry files in IndexedDB
838836
// https://cs.chromium.org/chromium/src/content/renderer/indexed_db/webidbdatabase_impl.cc?type=cs&sq=package:chromium&g=0&l=177
@@ -1045,8 +1043,8 @@ def generate_js(data_target, data_files, metadata):
10451043
fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, processPackageData, handleError);
10461044
};
10471045
1048-
openDatabase(
1049-
(db) => checkCachedPackage(db, PACKAGE_PATH + PACKAGE_NAME,
1046+
openDatabase()
1047+
.then((db) => checkCachedPackage(db, PACKAGE_PATH + PACKAGE_NAME,
10501048
(useCached, metadata) => {
10511049
Module['preloadResults'][PACKAGE_NAME] = {fromCache: useCached};
10521050
if (useCached) {
@@ -1062,8 +1060,8 @@ def generate_js(data_target, data_files, metadata):
10621060
}
10631061
, preloadFallback);
10641062
}
1065-
}, preloadFallback)
1066-
, preloadFallback);
1063+
}, preloadFallback))
1064+
.catch(preloadFallback);
10671065
10681066
Module['setStatus']?.('Downloading...');\n'''
10691067
else:

0 commit comments

Comments
 (0)