Skip to content

Commit

Permalink
Bump to v1.3.8
Browse files Browse the repository at this point in the history
  • Loading branch information
Scott Trinh authored and Scott Trinh committed Feb 16, 2018
1 parent 497f9c0 commit dccae4f
Show file tree
Hide file tree
Showing 7 changed files with 100 additions and 706 deletions.
10 changes: 10 additions & 0 deletions CHANGELOG.md
@@ -1,3 +1,13 @@
<a name="1.3.8"></a>
# 1.3.8 (2018-02-16)


## Documentation

- update travis link/shield
([63f97d8d](https://github.com/ocombe/angular-localForage/commit/63f97d8d2bd589aca7e5be64ce7f69e3b5c88e82))


<a name="1.3.7"></a>
# 1.3.7 (2017-05-12)

Expand Down
4 changes: 2 additions & 2 deletions bower.json
@@ -1,7 +1,7 @@
{
"name": "angular-localforage",
"main": "dist/angular-localForage.js",
"version": "1.3.7",
"version": "1.3.8",
"homepage": "https://github.com/ocombe/angular-localForage",
"authors": [
"Olivier Combe <olivier.combe@gmail.com>"
Expand Down Expand Up @@ -39,4 +39,4 @@
"localforage": "~1.4",
"angular": "1.2.x - 1.6.x"
}
}
}
140 changes: 83 additions & 57 deletions dist/angular-localForage.js
@@ -1,6 +1,6 @@
/**
* angular-localforage - Angular service & directive for https://github.com/mozilla/localForage (Offline storage, improved.)
* @version v1.3.7
* @version v1.3.8
* @link https://github.com/ocombe/angular-localForage
* @license MIT
* @author Olivier Combe <olivier.combe@gmail.com>
Expand Down Expand Up @@ -114,6 +114,8 @@
}

var self = this;
var args = arguments;
var localCopy;

if(angular.isArray(key)) {
if(!angular.isArray(value)) {
Expand All @@ -123,29 +125,25 @@
return $q.all(key.map(function (k, index) {
return self.setItem(k, value[index]);
}));
} else {
var deferred = $q.defer(),
args = arguments,
localCopy = stripMeta(value);

self._localforage.setItem(self.prefix() + key, localCopy)
.then(function success() {
if(notify.setItem) {
$rootScope.$broadcast('LocalForageModule.setItem', {
key: key,
newvalue: localCopy,
driver: self.driver()
});
}
deferred.resolve(localCopy);
})
.catch(function withError(error) {
self.onError(error, args, self.setItem, deferred);
});

return deferred.promise;
}

localCopy = stripMeta(value);

return self._localforage
.setItem(self.prefix() + key, localCopy)
.then(function success() {
if(notify.setItem) {
$rootScope.$broadcast('LocalForageModule.setItem', {
key: key,
newvalue: localCopy,
driver: self.driver()
});
}

return localCopy;
})
.catch(onError(args, self.setItem));

function stripMeta(value) {
var copy;
if (angular.isArray(value)) {
Expand Down Expand Up @@ -177,7 +175,7 @@
var deferred = $q.defer(),
args = arguments,
self = this,
promise;
promise;
if(angular.isArray(key)) {
var res = [],
found = 0;
Expand Down Expand Up @@ -276,24 +274,22 @@

// Get an item and removes it from storage
LocalForageInstance.prototype.pull = function pull(key) {
// throw error on undefined key
var self = this;
var itemValue;

if(angular.isUndefined(key)) {
throw new Error("You must define a key to pull");
}

var self = this,
deferred = $q.defer(),
onError = function error(err) {
deferred.reject(err);
};

self.getItem(key).then(function success(value) {
self.removeItem(key).then(function success() {
deferred.resolve(value);
}, onError);
}, onError);

return deferred.promise;
return self
.getItem(key)
.then(function (value) {
itemValue = value;
return self.removeItem(key);
})
.then(function () {
return itemValue;
});
};

// Remove all data for this app from storage
Expand All @@ -308,6 +304,15 @@
self.onError(data, args, self.clear, deferred);
});
return deferred.promise;

// return $q(function (resolve, reject) {
// self._localforage
// .clear()
// .then(function (keys) {
// resolve();
// })
// .catch(onError(arguments, self.clear));
// });
};

// Return the key for item at position n
Expand Down Expand Up @@ -338,7 +343,9 @@
if(defaultConfig.oldPrefix && self.driver() === 'localStorageWrapper') {
var tempKeyList = [];
for(var i = 0, len = keyList.length; i < len; i++) {
tempKeyList.push(keyList[i].substr(self.prefix().length, keyList[i].length));
tempKeyList.push(
keyList[i].substr(self.prefix().length, keyList[i].length)
);
}
keyList = tempKeyList;
}
Expand Down Expand Up @@ -384,7 +391,7 @@
if(angular.isString(opts)) {
opts = {
key: opts
}
};
} else if(!angular.isObject(opts) || angular.isUndefined(opts.key)) {
throw new Error("You must define a key to bind");
}
Expand All @@ -408,27 +415,29 @@
var scopeKey = opts.scopeKey || opts.key,
model = $parse(scopeKey);

return self.getItem(opts.key).then(function(item) {
if (item !== null) { // If it does exist assign it to the $scope value
return self
.getItem(opts.key, true)
.then(function(item) {
model.assign($scope, item);
} else if(!angular.isUndefined(opts.defaultValue)) { // If a value doesn't already exist store it as is
return item;
})
.catch(function () {
model.assign($scope, opts.defaultValue);
self.setItem(opts.key, opts.defaultValue);
}
return self.setItem(opts.key, opts.defaultValue);
})
.then(function (item) {
if(angular.isDefined(watchers[opts.key])) {
watchers[opts.key]();
}

// Register a listener for changes on the $scope value
// to update the localForage value
if(angular.isDefined(watchers[opts.key])) {
watchers[opts.key]();
}
watchers[opts.key] = $scope.$watch(scopeKey, function(val) {
if(angular.isDefined(val)) {
self.setItem(opts.key, val);
}
}, true);

watchers[opts.key] = $scope.$watch(scopeKey, function(val) {
if(angular.isDefined(val)) {
self.setItem(opts.key, val);
}
}, true);
return item;
});
return item;
});
};

/**
Expand Down Expand Up @@ -496,8 +505,26 @@
}
};

function onError(args, fct) {
return function(err) {
if(((angular.isObject(err) && err.name ? err.name === 'InvalidStateError' : (angular.isString(err) && err === 'InvalidStateError')) && this.driver() === 'asyncStorage')
|| (angular.isObject(err) && err.code && err.code === 5)) {
var self = this;

return self
.setDriver('localStorageWrapper')
.then(function () {
return fct.apply(self, args);
});
}

return $q.reject(err);
};
}

lfInstances[defaultConfig.name] = new LocalForageInstance();
return lfInstances[defaultConfig.name];

}]
});

Expand All @@ -517,4 +544,3 @@

return angularLocalForage.name;
});

0 comments on commit dccae4f

Please sign in to comment.