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.
		
		
		
		
		
			
		
			
				
					
					
						
							68 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
	
	
							68 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';
 | 
						|
}
 |