mirror of
				https://github.com/1disk/edp445.git
				synced 2024-08-14 22:47:02 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			77 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*!
 | |
|  * 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')
 | |
|   }
 | |
| }
 |