summaryrefslogtreecommitdiff
path: root/bin/wiki/ImportarDesdeURL/node_modules/wrappy/wrappy.js
diff options
context:
space:
mode:
Diffstat (limited to 'bin/wiki/ImportarDesdeURL/node_modules/wrappy/wrappy.js')
-rw-r--r--bin/wiki/ImportarDesdeURL/node_modules/wrappy/wrappy.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/bin/wiki/ImportarDesdeURL/node_modules/wrappy/wrappy.js b/bin/wiki/ImportarDesdeURL/node_modules/wrappy/wrappy.js
new file mode 100644
index 00000000..bb7e7d6f
--- /dev/null
+++ b/bin/wiki/ImportarDesdeURL/node_modules/wrappy/wrappy.js
@@ -0,0 +1,33 @@
+// Returns a wrapper function that returns a wrapped callback
+// The wrapper function should do some stuff, and return a
+// presumably different callback function.
+// This makes sure that own properties are retained, so that
+// decorations and such are not lost along the way.
+module.exports = wrappy
+function wrappy (fn, cb) {
+ if (fn && cb) return wrappy(fn)(cb)
+
+ if (typeof fn !== 'function')
+ throw new TypeError('need wrapper function')
+
+ Object.keys(fn).forEach(function (k) {
+ wrapper[k] = fn[k]
+ })
+
+ return wrapper
+
+ function wrapper() {
+ var args = new Array(arguments.length)
+ for (var i = 0; i < args.length; i++) {
+ args[i] = arguments[i]
+ }
+ var ret = fn.apply(this, args)
+ var cb = args[args.length-1]
+ if (typeof ret === 'function' && ret !== cb) {
+ Object.keys(cb).forEach(function (k) {
+ ret[k] = cb[k]
+ })
+ }
+ return ret
+ }
+}