70 lines
1.5 KiB
JavaScript
70 lines
1.5 KiB
JavaScript
// depends on: codeUri
|
|
window.common = (function(global) {
|
|
const {
|
|
localStorage,
|
|
common = { init: [] }
|
|
} = global;
|
|
|
|
const {
|
|
replaceNoprotect
|
|
} = common;
|
|
|
|
var challengePrefix = [
|
|
'Bonfire: ',
|
|
'Waypoint: ',
|
|
'Zipline: ',
|
|
'Basejump: ',
|
|
'Checkpoint: '],
|
|
item;
|
|
|
|
var codeStorage = {
|
|
getStoredValue(key) {
|
|
if (
|
|
!localStorage ||
|
|
typeof localStorage.getItem !== 'function' ||
|
|
!key ||
|
|
typeof key !== 'string'
|
|
) {
|
|
console.log('unable to read from storage');
|
|
return '';
|
|
}
|
|
if (localStorage.getItem(key + 'Val')) {
|
|
return '' + localStorage.getItem(key + 'Val');
|
|
} else {
|
|
for (var i = 0; i <= challengePrefix.length; i++) {
|
|
item = localStorage.getItem(challengePrefix[i] + key + 'Val');
|
|
if (item) {
|
|
return '' + item;
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
},
|
|
|
|
isAlive: function(key) {
|
|
var val = this.getStoredValue(key);
|
|
return val !== 'null' &&
|
|
val !== 'undefined' &&
|
|
(val && val.length > 0);
|
|
},
|
|
|
|
updateStorage(key, code) {
|
|
if (
|
|
!localStorage ||
|
|
typeof localStorage.setItem !== 'function' ||
|
|
!key ||
|
|
typeof key !== 'string'
|
|
) {
|
|
console.log('unable to save to storage');
|
|
return code;
|
|
}
|
|
localStorage.setItem(key + 'Val', replaceNoprotect(code));
|
|
return code;
|
|
}
|
|
};
|
|
|
|
common.codeStorage = codeStorage;
|
|
|
|
return common;
|
|
}(window, window.common));
|