all files / DEV/lib/helpers/ ensureClientSideSelectorSupport.js

88.89% Statements 16/18
75% Branches 6/8
33.33% Functions 1/3
66.67% Lines 4/6
6 statements, 3 branches Ignored     
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 34 35 36 37 38 39 40 41 42 43 44 45                                                                                   
'use strict';
 
Object.defineProperty(exports, '__esModule', {
    value: true
});
// istanbul ignore next
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
 
var _fs = require('fs');

var _fs2 = _interopRequireDefault(_fs);
 
var WGXPATH_PATH = require.resolve('wgxpath');
 
var wgxpathSrc = undefined;
 
/**
 * Ensures document.evaluate() in the browser.
 */
var ensureClientSideSelectorSupport = function ensureClientSideSelectorSupport() {
    // istanbul ignore next
 
    var _this = this;
 
    return this.execute('return !!document.evaluate;').then(function (res) {
        if (res.value) {
            return true;
        }
 
        /**
         * Don't read in unless necessary
         */
        if (!wgxpathSrc) {
            wgxpathSrc = _fs2['default'].readFileSync(WGXPATH_PATH);
            wgxpathSrc = wgxpathSrc.toString().split('module.exports')[0];
        }
 
        return _this.execute(wgxpathSrc + '\nwgxpath.install(window);');
    });
};
 
exports['default'] = ensureClientSideSelectorSupport;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvaGVscGVycy9lbnN1cmVDbGllbnRTaWRlU2VsZWN0b3JTdXBwb3J0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztrQkFBZSxJQUFJOzs7O0FBRW5CLElBQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7O0FBRS9DLElBQUksVUFBVSxZQUFBLENBQUE7Ozs7O0FBS2QsSUFBSSwrQkFBK0IsR0FBRyxTQUFsQywrQkFBK0IsR0FBZTs7Ozs7QUFDOUMsV0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRyxFQUFLO0FBQzdELFlBQUksR0FBRyxDQUFDLEtBQUssRUFBRTtBQUNYLG1CQUFPLElBQUksQ0FBQTtTQUNkOzs7OztBQUtELFlBQUksQ0FBQyxVQUFVLEVBQUU7QUFDYixzQkFBVSxHQUFHLGdCQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQTtBQUMxQyxzQkFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUNoRTs7QUFFRCxlQUFPLE1BQUssT0FBTyxDQUFDLFVBQVUsR0FBRyw0QkFBNEIsQ0FBQyxDQUFBO0tBQ2pFLENBQUMsQ0FBQTtDQUNMLENBQUE7O3FCQUVjLCtCQUErQiIsImZpbGUiOiIvVXNlcnMvY2hyaXN0aWFuYnJvbWFubi9TaXRlcy9XZWJwcm9qZWt0ZS93ZWJkcml2ZXJqcy9ERVYvbGliL2hlbHBlcnMvZW5zdXJlQ2xpZW50U2lkZVNlbGVjdG9yU3VwcG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcydcblxuY29uc3QgV0dYUEFUSF9QQVRIID0gcmVxdWlyZS5yZXNvbHZlKCd3Z3hwYXRoJylcblxubGV0IHdneHBhdGhTcmNcblxuLyoqXG4gKiBFbnN1cmVzIGRvY3VtZW50LmV2YWx1YXRlKCkgaW4gdGhlIGJyb3dzZXIuXG4gKi9cbmxldCBlbnN1cmVDbGllbnRTaWRlU2VsZWN0b3JTdXBwb3J0ID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmV4ZWN1dGUoJ3JldHVybiAhIWRvY3VtZW50LmV2YWx1YXRlOycpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICBpZiAocmVzLnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERvbid0IHJlYWQgaW4gdW5sZXNzIG5lY2Vzc2FyeVxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCF3Z3hwYXRoU3JjKSB7XG4gICAgICAgICAgICB3Z3hwYXRoU3JjID0gZnMucmVhZEZpbGVTeW5jKFdHWFBBVEhfUEFUSClcbiAgICAgICAgICAgIHdneHBhdGhTcmMgPSB3Z3hwYXRoU3JjLnRvU3RyaW5nKCkuc3BsaXQoJ21vZHVsZS5leHBvcnRzJylbMF1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGUod2d4cGF0aFNyYyArICdcXG53Z3hwYXRoLmluc3RhbGwod2luZG93KTsnKVxuICAgIH0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGVuc3VyZUNsaWVudFNpZGVTZWxlY3RvclN1cHBvcnRcbiJdfQ==