All files / wdio-sync/src runFnInFiberContext.js

100% Statements 7/7
100% Branches 0/0
100% Functions 4/4
100% Lines 6/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20                2x 2x 2x 2x 1x   1x          
import Fiber from 'fibers'
 
/**
 * global function to wrap callbacks into Fiber context
 * @param  {Function} fn  function to wrap around
 * @return {Function}     wrapped around function
 */
export default function runFnInFiberContext (fn) {
    return function (...args) {
        return new Promise((resolve, reject) => Fiber(() => {
            try {
                const result = fn.apply(this, args)
                return resolve(result)
            } catch (err) {
                return reject(err)
            }
        }).run())
    }
}