Skip to content

Commit e6b1150

Browse files
committed
Fix transaction problem that occurs when you return undefined results from transactions.
1 parent e4e175d commit e6b1150

8 files changed

+38
-21
lines changed

angular-indexed-db.js

Lines changed: 13 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

angular-indexed-db.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

angular-indexed-db.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

angular-indexed-db.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-indexedDB",
3-
"version": "1.1.1",
3+
"version": "1.1.2",
44
"homepage": "https://github.com/bramski/angular-indexedDB",
55
"authors": [
66
"bramski <bramski@gmail.com>"

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-indexed-db",
3-
"version": "1.1.1",
3+
"version": "1.1.2",
44
"dependencies": {},
55
"devDependencies": {
66
"grunt": "~0.4.1",

src/angular-indexed-db.coffee

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,13 @@ angular.module('indexedDB', []).provider '$indexedDB', ->
5454
else
5555
(e.target.webkitErrorMessage || e.target.error.message || e.target.errorCode)
5656

57+
appendResultsToPromise = (promise, results) ->
58+
if results isnt undefined
59+
promise.then ->
60+
results
61+
else
62+
promise
63+
5764
###*
5865
@ngdoc function
5966
@name $indexedDBProvider.connection
@@ -494,16 +501,14 @@ angular.module('indexedDB', []).provider '$indexedDB', ->
494501
openStore: (storeName, callBack, mode = dbMode.readwrite) ->
495502
openTransaction([storeName], mode).then (transaction) ->
496503
results = callBack(new ObjectStore(storeName, transaction))
497-
transaction.promise.then ->
498-
results
504+
appendResultsToPromise(transaction.promise, results)
499505

500506
openStores: (storeNames, callback, mode = dbMode.readwrite) ->
501507
openTransaction(storeNames, mode).then (transaction) ->
502508
objectStores = for storeName in storeNames
503509
new ObjectStore(storeName, transaction)
504510
results = callback.apply(null, objectStores)
505-
transaction.promise.then ->
506-
results
511+
appendResultsToPromise(transaction.promise, results)
507512

508513
openAllStores: (callback, mode = dbMode.readwrite) ->
509514
openDatabase().then =>
@@ -512,8 +517,7 @@ angular.module('indexedDB', []).provider '$indexedDB', ->
512517
objectStores = for storeName in storeNames
513518
new ObjectStore(storeName, transaction)
514519
results = callback.apply(null, objectStores)
515-
transaction.promise.then ->
516-
results
520+
appendResultsToPromise(transaction.promise, results)
517521

518522
###*
519523
@ngdoc method

test/spec/angular-indexeddb-spec.coffee

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,16 @@ describe "$indexedDB", ->
261261
store.find(1).then (object) ->
262262
expect(object.id).toEqual(1)
263263

264+
itPromises "when openStore returns nothing it doesn't fail", ->
265+
@subject.openStore "TestObjects", (store) ->
266+
store.upsert({id: 1, data: "something"}).then (result) ->
267+
expect(result).toBeTruthy()
268+
return
269+
@subject.openStore "TestObjects", (store) ->
270+
store.getAll().then (objects) ->
271+
console.log("got all objects?", objects)
272+
expect(objects.length).toEqual(1)
273+
264274
itPromises "can add an item of the same key twice", ->
265275
@subject.openStore "TestObjects", (store) ->
266276
store.upsert({id: 1, data: "something"})

0 commit comments

Comments
 (0)