(name, fn)
| 38 | } |
| 39 | |
| 40 | async function runStep(name, fn) { |
| 41 | setStep(name, "active"); |
| 42 | try { |
| 43 | const result = await fn(); |
| 44 | setStep(name, "done"); |
| 45 | return result; |
| 46 | } catch (err) { |
| 47 | setStep(name, "error"); |
| 48 | throw err; |
| 49 | } |
| 50 | } |
| 51 | |
| 52 | function minDelay(ms) { |
| 53 | return Promise.all([ |