Server IP : 85.214.239.14 / Your IP : 18.220.60.154 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/2/cwd/proc/3/root/proc/3/root/proc/2/cwd/lib/node_modules/pm2/node_modules/shimmer/ |
Upload File : |
'use strict' function isFunction (funktion) { return typeof funktion === 'function' } // Default to complaining loudly when things don't go according to plan. var logger = console.error.bind(console) // Sets a property on an object, preserving its enumerability. // This function assumes that the property is already writable. function defineProperty (obj, name, value) { var enumerable = !!obj[name] && obj.propertyIsEnumerable(name) Object.defineProperty(obj, name, { configurable: true, enumerable: enumerable, writable: true, value: value }) } // Keep initialization idempotent. function shimmer (options) { if (options && options.logger) { if (!isFunction(options.logger)) logger("new logger isn't a function, not replacing") else logger = options.logger } } function wrap (nodule, name, wrapper) { if (!nodule || !nodule[name]) { logger('no original function ' + name + ' to wrap') return } if (!wrapper) { logger('no wrapper function') logger((new Error()).stack) return } if (!isFunction(nodule[name]) || !isFunction(wrapper)) { logger('original object and wrapper must be functions') return } var original = nodule[name] var wrapped = wrapper(original, name) defineProperty(wrapped, '__original', original) defineProperty(wrapped, '__unwrap', function () { if (nodule[name] === wrapped) defineProperty(nodule, name, original) }) defineProperty(wrapped, '__wrapped', true) defineProperty(nodule, name, wrapped) return wrapped } function massWrap (nodules, names, wrapper) { if (!nodules) { logger('must provide one or more modules to patch') logger((new Error()).stack) return } else if (!Array.isArray(nodules)) { nodules = [nodules] } if (!(names && Array.isArray(names))) { logger('must provide one or more functions to wrap on modules') return } nodules.forEach(function (nodule) { names.forEach(function (name) { wrap(nodule, name, wrapper) }) }) } function unwrap (nodule, name) { if (!nodule || !nodule[name]) { logger('no function to unwrap.') logger((new Error()).stack) return } if (!nodule[name].__unwrap) { logger('no original to unwrap to -- has ' + name + ' already been unwrapped?') } else { return nodule[name].__unwrap() } } function massUnwrap (nodules, names) { if (!nodules) { logger('must provide one or more modules to patch') logger((new Error()).stack) return } else if (!Array.isArray(nodules)) { nodules = [nodules] } if (!(names && Array.isArray(names))) { logger('must provide one or more functions to unwrap on modules') return } nodules.forEach(function (nodule) { names.forEach(function (name) { unwrap(nodule, name) }) }) } shimmer.wrap = wrap shimmer.massWrap = massWrap shimmer.unwrap = unwrap shimmer.massUnwrap = massUnwrap module.exports = shimmer