552 #2

Merged
pamj3bxuk merged 2 commits from branch_yz into main 1 year ago

147
node_modules/depd/index.js generated vendored

@ -46,105 +46,120 @@ function containsNamespace (str, namespace) {
* Convert a data descriptor to accessor descriptor.
*/
function convertDataDescriptorToAccessor (obj, prop, message) {
var descriptor = Object.getOwnPropertyDescriptor(obj, prop)
var value = descriptor.value
function containsNamespace(str, namespace) {
// 使用正则表达式将字符串按空格或逗号分割成数组
var vals = str.split(/[ ,]+/);
// 将命名空间转换为小写以进行不区分大小写的比较
var ns = String(namespace).toLowerCase();
descriptor.get = function getter () { return value }
// 遍历分割后的数组
for (var i = 0; i < vals.length; i++) {
var val = vals[i];
if (descriptor.writable) {
descriptor.set = function setter (val) { return (value = val) }
// 如果 val 存在,并且等于 '*' 或者等于指定的命名空间,则返回 true
if (val && (val === '*' || val.toLowerCase() === ns)) {
return true;
}
}
delete descriptor.value
delete descriptor.writable
Object.defineProperty(obj, prop, descriptor)
return descriptor
// 如果没有找到匹配的命名空间,则返回 false
return false;
}
/**
* Create arguments string to keep arity.
* 将数据描述符转换为访问器描述符
* @param {Object} obj - 要修改的对象
* @param {string} prop - 要转换的属性名
* @param {string} message - 相关消息未使用
* @returns {Object} - 返回转换后的描述符
*/
function convertDataDescriptorToAccessor(obj, prop, message) {
// 获取对象的属性描述符
var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
// 获取属性的值
var value = descriptor.value;
function createArgumentsString (arity) {
var str = ''
// 定义 getter 方法,返回属性的值
descriptor.get = function getter() { return value; };
for (var i = 0; i < arity; i++) {
str += ', arg' + i
// 如果属性是可写的,则定义 setter 方法
if (descriptor.writable) {
descriptor.set = function setter(val) { return (value = val); };
}
return str.substr(2)
// 删除原有的值和可写性描述符
delete descriptor.value;
delete descriptor.writable;
// 使用新的描述符重新定义对象的属性
Object.defineProperty(obj, prop, descriptor);
// 返回转换后的描述符
return descriptor;
}
/**
* Create stack string from stack.
* Create arguments string to keep arity.
*/
function createStackString (stack) {
var str = this.name + ': ' + this.namespace
/**
* 检查给定的字符串中是否包含指定的命名空间
* @param {string} str - 要检查的字符串可能包含多个命名空间
* @param {string} namespace - 要查找的命名空间
* @returns {boolean} - 如果字符串中包含命名空间则返回 true否则返回 false
*/
function containsNamespace(str, namespace) {
// 使用正则表达式将字符串按空格或逗号分割成数组
var vals = str.split(/[ ,]+/);
// 将命名空间转换为小写以进行不区分大小写的比较
var ns = String(namespace).toLowerCase();
if (this.message) {
str += ' deprecated ' + this.message
}
// 遍历分割后的数组
for (var i = 0; i < vals.length; i++) {
var val = vals[i];
for (var i = 0; i < stack.length; i++) {
str += '\n at ' + stack[i].toString()
// 如果 val 存在,并且等于 '*' 或者等于指定的命名空间,则返回 true
if (val && (val === '*' || val.toLowerCase() === ns)) {
return true;
}
}
return str
// 如果没有找到匹配的命名空间,则返回 false
return false;
}
/**
* Create deprecate for namespace in caller.
* 将数据描述符转换为访问器描述符
* @param {Object} obj - 要修改的对象
* @param {string} prop - 要转换的属性名
* @param {string} message - 相关消息未使用
* @returns {Object} - 返回转换后的描述符
*/
function convertDataDescriptorToAccessor(obj, prop, message) {
// 获取对象的属性描述符
var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
// 获取属性的值
var value = descriptor.value;
function depd (namespace) {
if (!namespace) {
throw new TypeError('argument namespace is required')
}
var stack = getStack()
var site = callSiteLocation(stack[1])
var file = site[0]
// 定义 getter 方法,返回属性的值
descriptor.get = function getter() { return value; };
function deprecate (message) {
// call to self as log
log.call(deprecate, message)
// 如果属性是可写的,则定义 setter 方法
if (descriptor.writable) {
descriptor.set = function setter(val) { return (value = val); };
}
deprecate._file = file
deprecate._ignored = isignored(namespace)
deprecate._namespace = namespace
deprecate._traced = istraced(namespace)
deprecate._warned = Object.create(null)
// 删除原有的值和可写性描述符
delete descriptor.value;
delete descriptor.writable;
deprecate.function = wrapfunction
deprecate.property = wrapproperty
// 使用新的描述符重新定义对象的属性
Object.defineProperty(obj, prop, descriptor);
return deprecate
// 返回转换后的描述符
return descriptor;
}
/**
* Determine if event emitter has listeners of a given type.
*
* The way to do this check is done three different ways in Node.js >= 0.8
* so this consolidates them into a minimal set using instance methods.
*
* @param {EventEmitter} emitter
* @param {string} type
* @returns {boolean}
* @private
*/
function eehaslisteners (emitter, type) {
var count = typeof emitter.listenerCount !== 'function'
? emitter.listeners(type).length
: emitter.listenerCount(type)
return count > 0
}
/**
* Determine if namespace is ignored.

Loading…
Cancel
Save