UNPKG

807 BJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.compare = compare;
7exports.wait = wait;
8exports.timeout = timeout;
9exports.undefault = undefault;
10const debug = require('debug')('util');
11
12function compare(...props) {
13 return (a, b) => {
14 for (let prop of props) {
15 if (a[prop] === undefined) return -1;
16 if (b[prop] === undefined) return 1;
17 if (a[prop] < b[prop]) return -1;
18 if (a[prop] > b[prop]) return 1;
19 }
20 return 0;
21 };
22}
23
24function wait(ms, unref = false) {
25 return new Promise(resolve => {
26 let t = setTimeout(resolve, ms);
27 if (unref) t.unref();
28 });
29}
30
31function timeout(p, ms) {
32 return Promise.race([p, wait(ms, true).then(() => debug('timed out'))]);
33}
34
35function undefault(m) {
36 return m.default ? m.default : m;
37}
\No newline at end of file