1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.runFinally = exports.genPromiseCallback = exports.promisify = void 0;
|
4 | const tslib_1 = require("tslib");
|
5 | function promisify(f, args = []) {
|
6 | return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
7 | return new Promise((resolve, reject) => {
|
8 | f(...args, (err, res) => {
|
9 | if (err) {
|
10 | reject(err);
|
11 | }
|
12 | else {
|
13 | resolve(res);
|
14 | }
|
15 | });
|
16 | });
|
17 | });
|
18 | }
|
19 | exports.promisify = promisify;
|
20 | function genPromiseCallback() {
|
21 | let resolve;
|
22 | let reject;
|
23 | const p = new Promise((res, rej) => {
|
24 | resolve = res;
|
25 | reject = rej;
|
26 | });
|
27 | const cb = (err, res) => {
|
28 | if (err) {
|
29 | reject(err);
|
30 | }
|
31 | else {
|
32 | resolve(res);
|
33 | }
|
34 | };
|
35 | return Object.assign(cb, { promise: p });
|
36 | }
|
37 | exports.genPromiseCallback = genPromiseCallback;
|
38 | function runFinally(p, cb) {
|
39 | return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
40 | try {
|
41 | return yield p;
|
42 | }
|
43 | catch (e) {
|
44 | return Promise.reject(e);
|
45 | }
|
46 | finally {
|
47 | cb();
|
48 | }
|
49 | });
|
50 | }
|
51 | exports.runFinally = runFinally;
|
52 |
|
\ | No newline at end of file |