| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 | | "use strict"; |  |   |  | Object.defineProperty(exports, "__esModule", { |  |   value: true |  | }); |  | exports.once = once; |  | var _async = require("./async"); |  | function once(fn) { |  |   let result; |  |   let resultP; |  |   return function* () { |  |     if (result) return result; |  |     if (!(yield* (0, _async.isAsync)())) return result = yield* fn(); |  |     if (resultP) return yield* (0, _async.waitFor)(resultP); |  |     let resolve, reject; |  |     resultP = new Promise((res, rej) => { |  |       resolve = res; |  |       reject = rej; |  |     }); |  |     try { |  |       result = yield* fn(); |  |       resultP = null; |  |       resolve(result); |  |       return result; |  |     } catch (error) { |  |       reject(error); |  |       throw error; |  |     } |  |   }; |  | } |  | 0 && 0; |  |   |  | //# sourceMappingURL=functional.js.map | 
 |