| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 | | module.exports = thunkyp |  |   |  | function thunkyp (fn) { |  |   let running = null |  |   |  |   return ready |  |   |  |   function ready () { |  |     if (running) return running |  |     const p = fn() |  |     if (!(p instanceof Promise)) running = Promise.resolve(p) |  |     else running = p |  |     running.catch(onerror) |  |     return running |  |   } |  |   |  |   function onerror () { |  |     running = null |  |   } |  | } | 
 |