|
3 | 3 | var IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange; |
4 | 4 | var IDBCursor = window.IDBCursor || window.webkitIDBCursor; |
5 | 5 | IDBCursor.PREV = IDBCursor.PREV || "prev"; |
6 | | - IDBCursor.NEXT = IDBCursor.PREV || "next"; |
| 6 | + IDBCursor.NEXT = IDBCursor.NEXT || "next"; |
7 | 7 |
|
8 | 8 | /** |
9 | 9 | * Best to use the constant IDBTransaction since older version support numeric types while the latest spec |
|
56 | 56 | try { |
57 | 57 | var idbRequest = typeof req === "function" ? req(args) : req; |
58 | 58 | idbRequest.onsuccess = function(e){ |
59 | | - console.log("Success", idbRequest, e, this); |
| 59 | + //console.log("Success", idbRequest, e, this); |
60 | 60 | dfd.resolveWith(idbRequest, [idbRequest.result, e]); |
61 | 61 | }; |
62 | 62 | idbRequest.onerror = function(e){ |
63 | | - console.log("Error", idbRequest, e, this); |
| 63 | + //console.log("Error", idbRequest, e, this); |
64 | 64 | dfd.rejectWith(idbRequest, [idbRequest.error, e]); |
65 | 65 | }; |
66 | 66 | if (typeof idbRequest.onblocked !== "undefined" && idbRequest.onblocked === null) { |
67 | 67 | idbRequest.onblocked = function(e){ |
68 | | - console.log("Blocked", idbRequest, e, this); |
| 68 | + //console.log("Blocked", idbRequest, e, this); |
| 69 | + var res; |
69 | 70 | try { |
70 | | - var res = idbRequest.result; |
| 71 | + res = idbRequest.result; |
71 | 72 | } catch (e) { |
72 | 73 | res = null; // Required for Older Chrome versions, accessing result causes error |
73 | 74 | } |
|
76 | 77 | } |
77 | 78 | if (typeof idbRequest.onupgradeneeded !== "undefined" && idbRequest.onupgradeneeded === null) { |
78 | 79 | idbRequest.onupgradeneeded = function(e){ |
79 | | - console.log("Upgrade", idbRequest, e, this); |
| 80 | + //console.log("Upgrade", idbRequest, e, this); |
80 | 81 | dfd.notifyWith(idbRequest, [idbRequest.result, e]); |
81 | 82 | }; |
82 | 83 | } |
|
126 | 127 | return wrap.request(function(args){ |
127 | 128 | return idbObjectStore[op].apply(idbObjectStore, args); |
128 | 129 | }, arguments); |
129 | | - } |
| 130 | + }; |
130 | 131 | })(crudOps[i]); |
131 | 132 | } |
132 | 133 |
|
|
148 | 149 |
|
149 | 150 | result.createIndex = function(prop, options, indexName){ |
150 | 151 | if (arguments.length === 2 && typeof options === "string") { |
151 | | - indexName = arguments[1] |
| 152 | + indexName = arguments[1]; |
152 | 153 | options = null; |
153 | 154 | } |
154 | 155 | if (!indexName) { |
|
161 | 162 |
|
162 | 163 | result.deleteIndex = function(indexName){ |
163 | 164 | return idbObjectStore.deleteIndex(indexName); |
164 | | - } |
| 165 | + }; |
165 | 166 |
|
166 | 167 | return result; |
167 | 168 | }, |
|
183 | 184 | "cursor": function(idbCursor, callback){ |
184 | 185 | return $.Deferred(function(dfd){ |
185 | 186 | try { |
186 | | - console.log("Cursor request created", idbCursor); |
| 187 | + //console.log("Cursor request created", idbCursor); |
187 | 188 | var cursorReq = typeof idbCursor === "function" ? idbCursor() : idbCursor; |
188 | 189 | cursorReq.onsuccess = function(e){ |
189 | | - console.log("Cursor successful"); |
| 190 | + //console.log("Cursor successful"); |
190 | 191 | if (!cursorReq.result) { |
191 | 192 | dfd.resolveWith(cursorReq, [null, e]); |
192 | 193 | return; |
|
209 | 210 | "key": cursorReq.result.key, |
210 | 211 | "value": cursorReq.result.value |
211 | 212 | }; |
212 | | - console.log("Cursor in progress", elem, e); |
| 213 | + //console.log("Cursor in progress", elem, e); |
213 | 214 | dfd.notifyWith(cursorReq, [elem, e]); |
214 | 215 | var result = callback.apply(cursorReq, [elem]); |
215 | | - console.log("Iteration function returned", result); |
| 216 | + //console.log("Iteration function returned", result); |
216 | 217 | try { |
217 | 218 | if (result === false) { |
218 | 219 | dfd.resolveWith(cursorReq, [null, e]); |
|
223 | 224 | else cursorReq.result["continue"](); |
224 | 225 | } |
225 | 226 | } catch (e) { |
226 | | - console.log("Exception when trying to advance cursor", cursorReq, e); |
| 227 | + //console.log("Exception when trying to advance cursor", cursorReq, e); |
227 | 228 | dfd.rejectWith(cursorReq, [cursorReq.result, e]); |
228 | 229 | } |
229 | 230 | }; |
230 | 231 | cursorReq.onerror = function(e){ |
231 | | - console.log("Cursor request errored out", e); |
| 232 | + //console.log("Cursor request errored out", e); |
232 | 233 | dfd.rejectWith(cursorReq, [cursorReq.result, e]); |
233 | 234 | }; |
234 | 235 | } catch (e) { |
235 | | - console.log("An exception occured inside cursor", cursorReq, e) |
| 236 | + //console.log("An exception occured inside cursor", cursorReq, e); |
236 | 237 | e.type = "exception"; |
237 | 238 | dfd.rejectWith(cursorReq, [null, e]); |
238 | 239 | } |
|
245 | 246 | } catch (e) { |
246 | 247 | idbIndex = null; |
247 | 248 | } |
248 | | - //console.logidbIndex, index); |
| 249 | + ////console.logidbIndex, index); |
249 | 250 | return { |
250 | 251 | "each": function(callback, range, direction){ |
251 | 252 | return wrap.cursor(function(){ |
|
282 | 283 | } |
283 | 284 | }; |
284 | 285 | } |
285 | | - } |
| 286 | + }; |
286 | 287 |
|
287 | 288 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
288 | 289 |
|
|
331 | 332 | callback("onupgradeneeded", result, [event]); |
332 | 333 | // Version transaction is now complete, to open ordinary transaction |
333 | 334 | versionReq.result.db.close(); |
334 | | - console.log("Database closed, and will try to open again, with same version"); |
| 335 | + //console.log("Database closed, and will try to open again, with same version"); |
335 | 336 | var newDbOpenReq = indexedDB.open(dbName); |
336 | 337 | delete result.transaction; |
337 | 338 | delete result.result; |
338 | 339 |
|
339 | 340 | newDbOpenReq.onsuccess = function(e){ |
340 | | - console.log("DB Opened without version change", newDbOpenReq.result); |
| 341 | + //console.log("DB Opened without version change", newDbOpenReq.result); |
341 | 342 | copyReq(newDbOpenReq); |
342 | 343 | callback("onsuccess", result, [e], function(){ |
343 | 344 | newDbOpenReq.result.close(); |
|
347 | 348 | newDbOpenReq.onerror = function(e){ |
348 | 349 | copyReq(newDbOpenReq); |
349 | 350 | callback("onerror", result, [e], function(){ |
350 | | - console.log("Closed database in newRequest on error", newDbOpenReq); |
| 351 | + //console.log("Closed database in newRequest on error", newDbOpenReq); |
351 | 352 | newDbOpenReq.result.close(); |
352 | 353 | }); |
353 | 354 | }; |
354 | 355 | newDbOpenReq.onblocked = function(e){ |
355 | | - console.log("DB Blocked without version change", newDbOpenReq.result); |
| 356 | + //console.log("DB Blocked without version change", newDbOpenReq.result); |
356 | 357 | copyReq(newDbOpenReq); |
357 | 358 | callback("onblocked", result, [e], function(){ |
358 | | - console.log("Closed database in newRequest on blocked", newDbOpenReq); |
| 359 | + //console.log("Closed database in newRequest on blocked", newDbOpenReq); |
359 | 360 | newDbOpenReq.result.close(); |
360 | 361 | }); |
361 | 362 | }; |
|
366 | 367 | }; |
367 | 368 | versionReq.onblocked = function(e){ |
368 | 369 | // This always gets called, resulting the blocking the DB upgrade |
369 | | - console.log("Version transaction blocked, so calling the on blocked method"); |
| 370 | + //console.log("Version transaction blocked, so calling the on blocked method"); |
370 | 371 | callback("onblocked", result, [e]); |
371 | 372 | }; |
372 | 373 | } else if (oldVersion === newVersion) { |
|
382 | 383 | }; |
383 | 384 | dbOpenReq.onerror = function(e){ |
384 | 385 | copyReq(); |
385 | | - console.log("Error", dbOpenReq); |
| 386 | + //console.log("Error", dbOpenReq); |
386 | 387 | callback("onerror", result, [e]); |
387 | 388 | }; |
388 | 389 | dbOpenReq.onblocked = function(e){ |
|
397 | 398 | }; |
398 | 399 |
|
399 | 400 | return result; |
400 | | - } |
| 401 | + }; |
401 | 402 |
|
402 | 403 |
|
403 | 404 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
404 | 405 |
|
405 | 406 |
|
406 | 407 | // Start with opening the database |
407 | 408 | var dbPromise = wrap.request(function(){ |
408 | | - console.log("Trying to open DB with", version); |
| 409 | + //console.log("Trying to open DB with", version); |
409 | 410 | return version ? openReqShim(dbName, version) : openReqShim(dbName); |
410 | 411 | }); |
411 | 412 | dbPromise.then(function(db, e){ |
412 | | - console.log("DB opened at", db.version); |
| 413 | + //console.log("DB opened at", db.version); |
413 | 414 | db.onversionchange = function(){ |
414 | 415 | // Try to automatically close the database if there is a version change request |
415 | 416 | if (!(config && config.onversionchange && config.onversionchange() !== false)) { |
416 | 417 | db.close(); |
417 | 418 | } |
418 | 419 | }; |
419 | 420 | }, function(error, e){ |
420 | | - //console.logerror, e); |
| 421 | + ////console.logerror, e); |
421 | 422 | // Nothing much to do if an error occurs |
422 | 423 | }, function(db, e){ |
423 | 424 | if (e && e.type === "upgradeneeded") { |
424 | 425 | if (config && config.schema) { |
425 | 426 | // Assuming that version is always an integer |
426 | | - console.log("Upgrading DB to ", db.version); |
| 427 | + //console.log("Upgrading DB to ", db.version); |
427 | 428 | for (var i = e.oldVersion + 1; i <= e.newVersion; i++) { |
428 | 429 | typeof config.schema[i] === "function" && config.schema[i].call(this, wrap.transaction(this.transaction)); |
429 | 430 | } |
|
465 | 466 | mode = getDefaultTransaction(mode); |
466 | 467 | return $.Deferred(function(dfd){ |
467 | 468 | dbPromise.then(function(db, e){ |
| 469 | + var idbTransaction; |
468 | 470 | try { |
469 | | - console.log("DB Opened, now trying to create a transaction", storeNames, mode); |
470 | | - var idbTransaction = db.transaction(storeNames, mode); |
471 | | - console.log("Created a transaction", idbTransaction, mode, storeNames); |
| 471 | + //console.log("DB Opened, now trying to create a transaction", storeNames, mode); |
| 472 | + idbTransaction = db.transaction(storeNames, mode); |
| 473 | + //console.log("Created a transaction", idbTransaction, mode, storeNames); |
472 | 474 | idbTransaction.onabort = idbTransaction.onerror = function(e){ |
473 | 475 | dfd.rejectWith(idbTransaction, [e]); |
474 | 476 | }; |
475 | 477 | idbTransaction.oncomplete = function(e){ |
476 | 478 | dfd.resolveWith(idbTransaction, [e]); |
477 | 479 | }; |
478 | 480 | } catch (e) { |
479 | | - console.log("Creating a traction failed", e, storeNames, mode, this); |
| 481 | + //console.log("Creating a traction failed", e, storeNames, mode, this); |
480 | 482 | e.type = "exception"; |
481 | 483 | dfd.rejectWith(this, [e]); |
482 | 484 | return; |
|
490 | 492 | }, function(err, e){ |
491 | 493 | dfd.rejectWith(this, [e, err]); |
492 | 494 | }, function(res, e){ |
493 | | - console.log("Database open is blocked or upgrade needed", res, e.type); |
| 495 | + //console.log("Database open is blocked or upgrade needed", res, e.type); |
494 | 496 | //dfd.notifyWith(this, ["", e]); |
495 | 497 | }); |
496 | 498 |
|
|
503 | 505 | return $.Deferred(function(dfd){ |
504 | 506 | function onTransactionProgress(trans, callback){ |
505 | 507 | try { |
506 | | - console.log("Finally, returning the object store", trans); |
| 508 | + //console.log("Finally, returning the object store", trans); |
507 | 509 | callback(trans.objectStore(storeName)).then(function(result, e){ |
508 | 510 | dfd.resolveWith(this, [result, e]); |
509 | 511 | }, function(err, e){ |
510 | 512 | dfd.rejectWith(this, [err, e]); |
511 | 513 | }); |
512 | 514 | } catch (e) { |
513 | | - console.log("Duh, an exception occured", e); |
| 515 | + //console.log("Duh, an exception occured", e); |
514 | 516 | e.name = "exception"; |
515 | 517 | dfd.rejectWith(trans, [e, e]); |
516 | 518 | } |
517 | 519 | } |
518 | 520 | me.transaction(storeName, getDefaultTransaction(mode)).then(function(){ |
519 | | - console.log("Transaction completed"); |
| 521 | + //console.log("Transaction completed"); |
520 | 522 | // Nothing to do when transaction is complete |
521 | 523 | }, function(err, e){ |
522 | 524 | // If transaction fails, CrudOp fails |
523 | 525 | if (err.code === err.NOT_FOUND_ERR && (mode === true || typeof mode === "object")) { |
524 | | - console.log("Object Not found, so will try to create one now"); |
| 526 | + //console.log("Object Not found, so will try to create one now"); |
525 | 527 | var db = this.result; |
526 | 528 | db.close(); |
527 | 529 | dbPromise = wrap.request(function(){ |
528 | | - console.log("Now trying to open the database again", db.version); |
| 530 | + //console.log("Now trying to open the database again", db.version); |
529 | 531 | return openReqShim(dbName, (parseInt(db.version, 10) || 1) + 1); |
530 | 532 | }); |
531 | 533 | dbPromise.then(function(db, e){ |
532 | | - console.log("Database opened, tto open transaction", db.version); |
| 534 | + //console.log("Database opened, tto open transaction", db.version); |
533 | 535 | db.onversionchange = function(){ |
534 | 536 | // Try to automatically close the database if there is a version change request |
535 | 537 | if (!(config && config.onversionchange && config.onversionchange() !== false)) { |
536 | 538 | db.close(); |
537 | 539 | } |
538 | 540 | }; |
539 | 541 | me.transaction(storeName, getDefaultTransaction(mode)).then(function(){ |
540 | | - console.log("Transaction completed when trying to create object store"); |
| 542 | + //console.log("Transaction completed when trying to create object store"); |
541 | 543 | // Nothing much to do |
542 | 544 | }, function(err, e){ |
543 | 545 | dfd.rejectWith(this, [err, e]); |
544 | 546 | }, function(trans, e){ |
545 | | - console.log("Transaction in progress, when object store was not found", this, trans, e); |
| 547 | + //console.log("Transaction in progress, when object store was not found", this, trans, e); |
546 | 548 | onTransactionProgress(trans, callback); |
547 | 549 | }); |
548 | 550 | }, function(err, e){ |
549 | 551 | dfd.rejectWith(this, [err, e]); |
550 | 552 | }, function(db, e){ |
551 | 553 | if (e.type === "upgradeneeded") { |
552 | 554 | try { |
553 | | - console.log("Now trying to create an object store", e.type); |
| 555 | + //console.log("Now trying to create an object store", e.type); |
554 | 556 | db.createObjectStore(storeName, mode === true ? { |
555 | 557 | "autoIncrement": true |
556 | 558 | } : mode); |
557 | | - console.log("Object store created", storeName, db); |
| 559 | + //console.log("Object store created", storeName, db); |
558 | 560 | } catch (ex) { |
559 | | - console.log("Exception when trying ot create a new object store", ex) |
| 561 | + //console.log("Exception when trying ot create a new object store", ex); |
560 | 562 | dfd.rejectWith(this, [ex, e]); |
561 | 563 | } |
562 | 564 | } |
563 | 565 | }); |
564 | 566 | } else { |
565 | | - console.log("Error in transaction inside object store", err); |
| 567 | + //console.log("Error in transaction inside object store", err); |
566 | 568 | dfd.rejectWith(this, [err, e]); |
567 | 569 | } |
568 | 570 | }, function(trans){ |
569 | | - console.log("Transaction is in progress", trans); |
| 571 | + //console.log("Transaction is in progress", trans); |
570 | 572 | onTransactionProgress(trans, callback); |
571 | 573 | }); |
572 | 574 | }); |
573 | | - }; |
| 575 | + } |
574 | 576 |
|
575 | 577 | function crudOp(opName, args){ |
576 | 578 | return op(function(wrappedObjectStore){ |
|
590 | 592 | result[crud[i]] = (function(op){ |
591 | 593 | return function(){ |
592 | 594 | return crudOp(op, arguments); |
593 | | - } |
| 595 | + }; |
594 | 596 | })(crud[i]); |
595 | 597 | } |
596 | 598 |
|
|
609 | 611 | return indexOp("getKey", indexName, [key]); |
610 | 612 | } |
611 | 613 | }; |
612 | | - } |
| 614 | + }; |
613 | 615 |
|
614 | 616 | return result; |
615 | 617 | } |
|
0 commit comments