ngx-indexed-db
Version:
Angular wrapper to IndexedDB database.
34 lines • 4.33 kB
JavaScript
export function validateStoreName(db, storeName) {
return db.objectStoreNames.contains(storeName);
}
export function validateBeforeTransaction(db, storeName, reject) {
if (!db) {
reject('You need to use the openDatabase function to create a database before you query it!');
}
if (!validateStoreName(db, storeName)) {
reject(`objectStore does not exists: ${storeName}`);
}
}
export function createTransaction(db, options) {
const trans = db.transaction(options.storeName, options.dbMode);
trans.onerror = options.error;
trans.oncomplete = options.complete;
trans.onabort = options.abort;
return trans;
}
export function optionsGenerator(type, storeName, reject, resolve) {
return {
storeName,
dbMode: type,
error: (e) => {
reject(e);
},
complete: (e) => {
resolve(e);
},
abort: (e) => {
reject(e);
},
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaW5kZXhlZC1kYi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEVBQWUsRUFBRSxTQUFpQjtJQUNsRSxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxFQUFlLEVBQUUsU0FBaUIsRUFBRSxNQUFpQztJQUM3RyxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ1AsTUFBTSxDQUFDLHFGQUFxRixDQUFDLENBQUM7S0FDL0Y7SUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1FBQ3JDLE1BQU0sQ0FBQyxnQ0FBZ0MsU0FBUyxFQUFFLENBQUMsQ0FBQztLQUNyRDtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBZSxFQUFFLE9BQWdCO0lBQ2pFLE1BQU0sS0FBSyxHQUFtQixFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hGLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM5QixLQUFLLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDcEMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzlCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsSUFBUyxFQUNULFNBQWMsRUFDZCxNQUE4QixFQUM5QixPQUF5QjtJQUV6QixPQUFPO1FBQ0wsU0FBUztRQUNULE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLENBQUMsQ0FBUSxFQUFFLEVBQUU7WUFDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1osQ0FBQztRQUNELFFBQVEsRUFBRSxDQUFDLENBQVEsRUFBRSxFQUFFO1lBQ3JCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNiLENBQUM7UUFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFRLEVBQUUsRUFBRTtZQUNsQixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDWixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMge1xuICBzdG9yZU5hbWU6IHN0cmluZztcbiAgZGJNb2RlOiBJREJUcmFuc2FjdGlvbk1vZGU7XG4gIGVycm9yOiAoZTogRXZlbnQpID0+IGFueTtcbiAgY29tcGxldGU6IChlOiBFdmVudCkgPT4gYW55O1xuICBhYm9ydD86IGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU3RvcmVOYW1lKGRiOiBJREJEYXRhYmFzZSwgc3RvcmVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoc3RvcmVOYW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQmVmb3JlVHJhbnNhY3Rpb24oZGI6IElEQkRhdGFiYXNlLCBzdG9yZU5hbWU6IHN0cmluZywgcmVqZWN0OiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gIGlmICghZGIpIHtcbiAgICByZWplY3QoJ1lvdSBuZWVkIHRvIHVzZSB0aGUgb3BlbkRhdGFiYXNlIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIGRhdGFiYXNlIGJlZm9yZSB5b3UgcXVlcnkgaXQhJyk7XG4gIH1cbiAgaWYgKCF2YWxpZGF0ZVN0b3JlTmFtZShkYiwgc3RvcmVOYW1lKSkge1xuICAgIHJlamVjdChgb2JqZWN0U3RvcmUgZG9lcyBub3QgZXhpc3RzOiAke3N0b3JlTmFtZX1gKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb24oZGI6IElEQkRhdGFiYXNlLCBvcHRpb25zOiBPcHRpb25zKTogSURCVHJhbnNhY3Rpb24ge1xuICBjb25zdCB0cmFuczogSURCVHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihvcHRpb25zLnN0b3JlTmFtZSwgb3B0aW9ucy5kYk1vZGUpO1xuICB0cmFucy5vbmVycm9yID0gb3B0aW9ucy5lcnJvcjtcbiAgdHJhbnMub25jb21wbGV0ZSA9IG9wdGlvbnMuY29tcGxldGU7XG4gIHRyYW5zLm9uYWJvcnQgPSBvcHRpb25zLmFib3J0O1xuICByZXR1cm4gdHJhbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcHRpb25zR2VuZXJhdG9yKFxuICB0eXBlOiBhbnksXG4gIHN0b3JlTmFtZTogYW55LFxuICByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQsXG4gIHJlc29sdmU6IChlOiBhbnkpID0+IHZvaWRcbik6IE9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIHN0b3JlTmFtZSxcbiAgICBkYk1vZGU6IHR5cGUsXG4gICAgZXJyb3I6IChlOiBFdmVudCkgPT4ge1xuICAgICAgcmVqZWN0KGUpO1xuICAgIH0sXG4gICAgY29tcGxldGU6IChlOiBFdmVudCkgPT4ge1xuICAgICAgcmVzb2x2ZShlKTtcbiAgICB9LFxuICAgIGFib3J0OiAoZTogRXZlbnQpID0+IHtcbiAgICAgIHJlamVjdChlKTtcbiAgICB9LFxuICB9O1xufVxuIl19