Skip to content

Commit 0fe4ad4

Browse files
committed
Cache issue implementation
1 parent 350b414 commit 0fe4ad4

File tree

6 files changed

+86
-37
lines changed

6 files changed

+86
-37
lines changed

.DS_Store

-6 KB
Binary file not shown.

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.DS_Store
1+
*.DS_Store
22
examples/*
33
node_modules/*
44
.idea/*

examples/web/scripts/contentstack.js

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

src/core/cache.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,16 @@ export function get(key) {
1212
};
1313

1414
export function set(key, data) {
15-
if (typeof data === 'object') {
16-
storage.setItem(key, JSON.stringify(data));
17-
} else {
18-
storage.setItem(key, data);
15+
try {
16+
if (typeof data === 'object') {
17+
storage.setItem(key, JSON.stringify(data));
18+
} else {
19+
storage.setItem(key, data);
20+
}
21+
} catch (error) {
22+
1923
}
24+
2025
};
2126

2227
export function getStorage() {

src/core/lib/utils.js

Lines changed: 58 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ export function sendRequest(queryObject) {
257257
} else if (data.assets && data.assets.length) {
258258
entries.assets = data.assets[0];
259259
} else {
260-
if (cachePolicy === 2) {
260+
if (cachePolicy === 2 && self.provider !== null) {
261261
self.provider.get(hashQuery, getCacheCallback());
262262
} else {
263263
return reject({ error_code: 141, error_message: 'The requested entry doesn\'t exist.' });
@@ -276,7 +276,7 @@ export function sendRequest(queryObject) {
276276
entries = data;
277277
}
278278

279-
if (cachePolicy !== -1) {
279+
if (cachePolicy !== -1 && self.provider !== null) {
280280
self.provider.set(hashQuery, entries, function(err) {
281281
try {
282282
if (err) throw err;
@@ -304,7 +304,7 @@ export function sendRequest(queryObject) {
304304
}
305305
}.bind(self))
306306
.catch(function(error) {
307-
if (cachePolicy === 2) {
307+
if (cachePolicy === 2 && self.provider !== null) {
308308
self.provider.get(hashQuery, getCacheCallback());
309309
} else {
310310
return reject(error);
@@ -316,18 +316,23 @@ export function sendRequest(queryObject) {
316316
switch (cachePolicy) {
317317
case 1:
318318
return new Promise(function(resolve, reject) {
319-
self.provider.get(hashQuery, function(err, _data) {
320-
try {
321-
if (err || !_data) {
322-
callback(true, resolve, reject);
323-
} else {
324-
if (!tojson) _data = resultWrapper(_data);
325-
return resolve(spreadResult(_data));
319+
if (self.provider !== null) {
320+
self.provider.get(hashQuery, function(err, _data) {
321+
try {
322+
if (err || !_data) {
323+
callback(true, resolve, reject);
324+
} else {
325+
if (!tojson) _data = resultWrapper(_data);
326+
return resolve(spreadResult(_data));
327+
}
328+
} catch (e) {
329+
return reject(e);
326330
}
327-
} catch (e) {
328-
return reject(e);
329-
}
330-
});
331+
});
332+
}else {
333+
callback(true, resolve, reject);
334+
}
335+
331336
});
332337
break;
333338
case 2:
@@ -340,21 +345,43 @@ export function sendRequest(queryObject) {
340345
};
341346

342347
if (cachePolicy === 3) {
348+
/////// New Implementaion
349+
// return new Promise(function(resolve, reject) {
350+
// // if (self.provider !== null) {
351+
// self.provider.get(hashQuery, function(err, _data) {
352+
// try {
353+
// if (err) {
354+
// reject(err);
355+
// } else {
356+
// if (!tojson) _data = resultWrapper(_data);
357+
// resolve(spreadResult(_data));
358+
// }
359+
// } catch (e) {
360+
// reject(e);
361+
// }
362+
// });
363+
// // }else {
364+
// // callback(true, resolve, reject);
365+
// // // reject({ error_code: 141, error_message: 'The requested entry doesn\'t exist.' });
366+
// // }
367+
// });
368+
369+
// Old Implementation
343370
return {
344371
cache: (function() {
345372
return new Promise(function(resolve, reject) {
346-
self.provider.get(hashQuery, function(err, _data) {
347-
try {
348-
if (err) {
349-
reject(err);
350-
} else {
351-
if (!tojson) _data = resultWrapper(_data);
352-
resolve(spreadResult(_data));
373+
self.provider.get(hashQuery, function(err, _data) {
374+
try {
375+
if (err) {
376+
reject(err);
377+
} else {
378+
if (!tojson) _data = resultWrapper(_data);
379+
resolve(spreadResult(_data));
380+
}
381+
} catch (e) {
382+
reject(e);
353383
}
354-
} catch (e) {
355-
reject(e);
356-
}
357-
});
384+
});
358385
});
359386
}()),
360387
network: (function() {
@@ -363,10 +390,12 @@ export function sendRequest(queryObject) {
363390
});
364391
}()),
365392
both: function(_callback_) {
366-
self.provider.get(hashQuery, function(err, entries) {
367-
if (!tojson) entries = resultWrapper(entries);
368-
_callback_(err, spreadResult(entries))
369-
});
393+
if (self.provider !== null) {
394+
self.provider.get(hashQuery, function(err, entries) {
395+
if (!tojson) entries = resultWrapper(entries);
396+
_callback_(err, spreadResult(entries))
397+
});
398+
}
370399
Request(queryObject.requestParams)
371400
.then(function(data) {
372401
try {

src/runtime/web/localstorage.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,16 @@
1-
export default window.localStorage;
1+
// export default window.localStorage;
2+
3+
let webLocalStoreage = function (){
4+
try {
5+
var storage = window.localStorage,
6+
x = '__storage_test__';
7+
storage.setItem(x, x);
8+
storage.removeItem(x);
9+
return window[type];
10+
} catch(e) {
11+
return null
12+
}
13+
};
14+
15+
export default webLocalStoreage
16+

0 commit comments

Comments
 (0)