Skip to content

Commit efdc4ea

Browse files
authored
Add pify.js
1 parent d91f9ac commit efdc4ea

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed

website/static/js/pify.js

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.pify = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
2+
'use strict';
3+
4+
const processFn = (fn, opts) => function () {
5+
const P = opts.promiseModule;
6+
const args = new Array(arguments.length);
7+
8+
for (let i = 0; i < arguments.length; i++) {
9+
args[i] = arguments[i];
10+
}
11+
12+
return new P((resolve, reject) => {
13+
if (opts.errorFirst) {
14+
args.push(function (err, result) {
15+
if (opts.multiArgs) {
16+
const results = new Array(arguments.length - 1);
17+
18+
for (let i = 1; i < arguments.length; i++) {
19+
results[i - 1] = arguments[i];
20+
}
21+
22+
if (err) {
23+
results.unshift(err);
24+
reject(results);
25+
} else {
26+
resolve(results);
27+
}
28+
} else if (err) {
29+
reject(err);
30+
} else {
31+
resolve(result);
32+
}
33+
});
34+
} else {
35+
args.push(function (result) {
36+
if (opts.multiArgs) {
37+
const results = new Array(arguments.length - 1);
38+
39+
for (let i = 0; i < arguments.length; i++) {
40+
results[i] = arguments[i];
41+
}
42+
43+
resolve(results);
44+
} else {
45+
resolve(result);
46+
}
47+
});
48+
}
49+
50+
fn.apply(this, args);
51+
});
52+
};
53+
54+
module.exports = (obj, opts) => {
55+
opts = Object.assign({
56+
exclude: [/.+(Sync|Stream)$/],
57+
errorFirst: true,
58+
promiseModule: Promise
59+
}, opts);
60+
61+
const filter = key => {
62+
const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key);
63+
return opts.include ? opts.include.some(match) : !opts.exclude.some(match);
64+
};
65+
66+
let ret;
67+
if (typeof obj === 'function') {
68+
ret = function () {
69+
if (opts.excludeMain) {
70+
return obj.apply(this, arguments);
71+
}
72+
73+
return processFn(obj, opts).apply(this, arguments);
74+
};
75+
} else {
76+
ret = Object.create(Object.getPrototypeOf(obj));
77+
}
78+
79+
for (const key in obj) { // eslint-disable-line guard-for-in
80+
const x = obj[key];
81+
ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x;
82+
}
83+
84+
return ret;
85+
};
86+
87+
},{}]},{},[1])(1)
88+
});

0 commit comments

Comments
 (0)