You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							67 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
	
	
							67 lines
						
					
					
						
							1.6 KiB
						
					
					
				
 | 
						|
/** | 
						|
 * Module exports. | 
						|
 */ | 
						|
 | 
						|
module.exports = deprecate; | 
						|
 | 
						|
/** | 
						|
 * Mark that a method should not be used. | 
						|
 * Returns a modified function which warns once by default. | 
						|
 * | 
						|
 * If `localStorage.noDeprecation = true` is set, then it is a no-op. | 
						|
 * | 
						|
 * If `localStorage.throwDeprecation = true` is set, then deprecated functions | 
						|
 * will throw an Error when invoked. | 
						|
 * | 
						|
 * If `localStorage.traceDeprecation = true` is set, then deprecated functions | 
						|
 * will invoke `console.trace()` instead of `console.error()`. | 
						|
 * | 
						|
 * @param {Function} fn - the function to deprecate | 
						|
 * @param {String} msg - the string to print to the console when `fn` is invoked | 
						|
 * @returns {Function} a new "deprecated" version of `fn` | 
						|
 * @api public | 
						|
 */ | 
						|
 | 
						|
function deprecate (fn, msg) { | 
						|
  if (config('noDeprecation')) { | 
						|
    return fn; | 
						|
  } | 
						|
 | 
						|
  var warned = false; | 
						|
  function deprecated() { | 
						|
    if (!warned) { | 
						|
      if (config('throwDeprecation')) { | 
						|
        throw new Error(msg); | 
						|
      } else if (config('traceDeprecation')) { | 
						|
        console.trace(msg); | 
						|
      } else { | 
						|
        console.warn(msg); | 
						|
      } | 
						|
      warned = true; | 
						|
    } | 
						|
    return fn.apply(this, arguments); | 
						|
  } | 
						|
 | 
						|
  return deprecated; | 
						|
} | 
						|
 | 
						|
/** | 
						|
 * Checks `localStorage` for boolean values for the given `name`. | 
						|
 * | 
						|
 * @param {String} name | 
						|
 * @returns {Boolean} | 
						|
 * @api private | 
						|
 */ | 
						|
 | 
						|
function config (name) { | 
						|
  // accessing global.localStorage can trigger a DOMException in sandboxed iframes | 
						|
  try { | 
						|
    if (!global.localStorage) return false; | 
						|
  } catch (_) { | 
						|
    return false; | 
						|
  } | 
						|
  var val = global.localStorage[name]; | 
						|
  if (null == val) return false; | 
						|
  return String(val).toLowerCase() === 'true'; | 
						|
}
 | 
						|
 |