@atproto/oauth-client-browser
Version:
ATPROTO OAuth client for the browser (relies on WebCrypto & Indexed DB)
40 lines • 1.21 kB
JavaScript
import { promisify } from './util.js';
export class DBIndex {
constructor(idbIndex) {
this.idbIndex = idbIndex;
}
count(query) {
return promisify(this.idbIndex.count(query));
}
get(query) {
return promisify(this.idbIndex.get(query));
}
getKey(query) {
return promisify(this.idbIndex.getKey(query));
}
getAll(query, count) {
return promisify(this.idbIndex.getAll(query, count));
}
getAllKeys(query, count) {
return promisify(this.idbIndex.getAllKeys(query, count));
}
deleteAll(query) {
return new Promise((resolve, reject) => {
const result = this.idbIndex.openCursor(query);
result.onsuccess = function (event) {
const cursor = event.target.result;
if (cursor) {
cursor.delete();
cursor.continue();
}
else {
resolve();
}
};
result.onerror = function (event) {
reject(event.target?.error || new Error('Unexpected error'));
};
});
}
}
//# sourceMappingURL=db-index.js.map