Skip to content

Commit 56725be

Browse files
committed
Small fix for locastorage and deserialize.
1 parent 667715e commit 56725be

File tree

6 files changed

+30
-7
lines changed

6 files changed

+30
-7
lines changed

dist/angular-data.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -2127,7 +2127,11 @@ function DSLocalStorageAdapterProvider() {
21272127
var deferred = $q.defer();
21282128
try {
21292129
var item = localStorage.getItem(key);
2130-
deferred.resolve(item ? angular.fromJson(item) : undefined);
2130+
if (item) {
2131+
deferred.resolve(angular.fromJson(item));
2132+
} else {
2133+
deferred.reject('Not Found!');
2134+
}
21312135
} catch (err) {
21322136
deferred.reject(err);
21332137
}
@@ -4300,7 +4304,7 @@ Defaults.prototype.serialize = function (resourceName, data) {
43004304
* @returns {*} By default returns `data.data`.
43014305
*/
43024306
Defaults.prototype.deserialize = function (resourceName, data) {
4303-
return data.data;
4307+
return data ? (data.data ? data.data : data) : data;
43044308
};
43054309

43064310
/**

dist/angular-data.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

karma.start.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ beforeEach(function () {
8989
};
9090
lifecycle.deserialize = function (resourceName, data) {
9191
lifecycle.deserialize.callCount += 1;
92-
return data.data;
92+
return data ? (data.data ? data.data : data) : data;;
9393
};
9494
lifecycle.queryTransform = function (resourceName, query) {
9595
lifecycle.queryTransform.callCount += 1;

src/adapters/localStorage.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,11 @@ function DSLocalStorageAdapterProvider() {
3636
var deferred = $q.defer();
3737
try {
3838
var item = localStorage.getItem(key);
39-
deferred.resolve(item ? angular.fromJson(item) : undefined);
39+
if (item) {
40+
deferred.resolve(angular.fromJson(item));
41+
} else {
42+
deferred.reject('Not Found!');
43+
}
4044
} catch (err) {
4145
deferred.reject(err);
4246
}

src/datastore/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,7 @@ Defaults.prototype.serialize = function (resourceName, data) {
569569
* @returns {*} By default returns `data.data`.
570570
*/
571571
Defaults.prototype.deserialize = function (resourceName, data) {
572-
return data.data;
572+
return data ? (data.data ? data.data : data) : data;
573573
};
574574

575575
/**

test/integration/datastore/async_methods/find.test.js

+15
Original file line numberDiff line numberDiff line change
@@ -180,4 +180,19 @@ describe('DS.find(resourceName, id[, options]): ', function () {
180180

181181
$httpBackend.flush();
182182
});
183+
it('should use a different adapter', function (done) {
184+
var Person = DS.defineResource({
185+
name: 'person',
186+
defaultAdapter: 'DSLocalStorageAdapter'
187+
});
188+
189+
Person.find(5).then(function () {
190+
done('Should not have succeeded.');
191+
}, function (err) {
192+
assert.equal(err, 'Not Found!');
193+
done();
194+
});
195+
196+
$rootScope.$apply();
197+
});
183198
});

0 commit comments

Comments
 (0)