Skip to content

Commit 1277029

Browse files
committed
Cache issue implementation
1 parent e78562e commit 1277029

File tree

7 files changed

+91
-41
lines changed

7 files changed

+91
-41
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.

examples/web/scripts/custom.min.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
if (entry) {
1212
html += '<div class="panel panel-default"><div class="panel-heading" role="tab"><h4 class="panel-title"><a role="button" data-toggle="collapse" data-parent="#accordion" href="#' + entry.uid + '" aria-expanded="true" aria-controls="' + entry.uid + '">';
1313
html += entry.title + '</a></h4></div><div id="' + entry.uid + '" class="panel-collapse collapse" role="tabpanel"><div class="panel-body">';
14-
html += entry.url + ' </div></div></div>';
14+
html += entry.body + ' </div></div></div>';
1515
}
1616
return html;
1717
}
@@ -54,6 +54,7 @@
5454
}
5555
}, function(err) {
5656
console.info('Error : ' + err);
57+
console.log(err);
5758
});
5859
}
5960

@@ -83,10 +84,10 @@
8384

8485
window.onload = function() {
8586
wrapper = document.getElementById('wrapper')
86-
Stack = Contentstack.Stack({ 'api_key': 'blt123something', 'access_token': 'blt123something', 'environment': 'mobile' })
87-
87+
Stack = Contentstack.Stack({ 'api_key': 'blt7979d15c28261b93', 'access_token': 'cs17465ae5683299db9d259cb6', 'environment': 'production' })
88+
Stack.setCachePolicy(Contentstack.CachePolicy.NETWORK_ELSE_CACHE);
8889
// get all the entries
89-
allEntries("blogs")
90+
allEntries("news")
9091

9192
// get all the assets
9293
// getAsset();

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)