react-indexeddb-kit
Version:
A TypeScript-based React IndexedDB wrapper with CRUD operations.
22 lines (21 loc) • 987 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findUnique = findUnique;
const errors_1 = require("../../errors");
// Find a single record by ID with optional selection
function findUnique(db, modelDef, id, options) {
return new Promise((resolve, reject) => {
const transaction = db.transaction(modelDef.name, "readonly");
const store = transaction.objectStore(modelDef.name);
const request = store.get(id);
request.onsuccess = () => {
let result = request.result || null;
// Apply selection based on { fieldName: true } format
if (result && (options === null || options === void 0 ? void 0 : options.select)) {
result = Object.fromEntries(Object.entries(result).filter(([key]) => options.select[key]));
}
resolve(result);
};
request.onerror = () => reject(new errors_1.DatabaseError("Failed to fetch record"));
});
}