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.
		
		
		
		
		
			
		
			
				
					
					
						
							78 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							78 lines
						
					
					
						
							1.5 KiB
						
					
					
				/*!
 | 
						|
 * depd
 | 
						|
 * Copyright(c) 2015 Douglas Christopher Wilson
 | 
						|
 * MIT Licensed
 | 
						|
 */
 | 
						|
 | 
						|
'use strict'
 | 
						|
 | 
						|
/**
 | 
						|
 * Module exports.
 | 
						|
 * @public
 | 
						|
 */
 | 
						|
 | 
						|
module.exports = depd
 | 
						|
 | 
						|
/**
 | 
						|
 * Create deprecate for namespace in caller.
 | 
						|
 */
 | 
						|
 | 
						|
function depd (namespace) {
 | 
						|
  if (!namespace) {
 | 
						|
    throw new TypeError('argument namespace is required')
 | 
						|
  }
 | 
						|
 | 
						|
  function deprecate (message) {
 | 
						|
    // no-op in browser
 | 
						|
  }
 | 
						|
 | 
						|
  deprecate._file = undefined
 | 
						|
  deprecate._ignored = true
 | 
						|
  deprecate._namespace = namespace
 | 
						|
  deprecate._traced = false
 | 
						|
  deprecate._warned = Object.create(null)
 | 
						|
 | 
						|
  deprecate.function = wrapfunction
 | 
						|
  deprecate.property = wrapproperty
 | 
						|
 | 
						|
  return deprecate
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Return a wrapped function in a deprecation message.
 | 
						|
 *
 | 
						|
 * This is a no-op version of the wrapper, which does nothing but call
 | 
						|
 * validation.
 | 
						|
 */
 | 
						|
 | 
						|
function wrapfunction (fn, message) {
 | 
						|
  if (typeof fn !== 'function') {
 | 
						|
    throw new TypeError('argument fn must be a function')
 | 
						|
  }
 | 
						|
 | 
						|
  return fn
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Wrap property in a deprecation message.
 | 
						|
 *
 | 
						|
 * This is a no-op version of the wrapper, which does nothing but call
 | 
						|
 * validation.
 | 
						|
 */
 | 
						|
 | 
						|
function wrapproperty (obj, prop, message) {
 | 
						|
  if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {
 | 
						|
    throw new TypeError('argument obj must be object')
 | 
						|
  }
 | 
						|
 | 
						|
  var descriptor = Object.getOwnPropertyDescriptor(obj, prop)
 | 
						|
 | 
						|
  if (!descriptor) {
 | 
						|
    throw new TypeError('must call property on owner object')
 | 
						|
  }
 | 
						|
 | 
						|
  if (!descriptor.configurable) {
 | 
						|
    throw new TypeError('property must be configurable')
 | 
						|
  }
 | 
						|
}
 |