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));
 |