UNPKG

@browserstack/testcafe

Version:

Automated browser testing for the modern web development stack.

74 lines 8.98 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const lodash_1 = require("lodash"); const os_family_1 = __importDefault(require("os-family")); const CONFIG_TERMINATOR_RE = /(\s+|^)-/; function hasMatch(array, re) { return !!lodash_1.find(array, el => el.match(re)); } exports.hasMatch = hasMatch; function findMatch(array, re) { const element = lodash_1.find(array, el => el.match(re)); return element ? element.match(re)[1] : ''; } exports.findMatch = findMatch; function isMatchTrue(array, re) { const match = findMatch(array, re); return match && match !== '0' && match !== 'false'; } exports.isMatchTrue = isMatchTrue; function splitEscaped(str, splitterChar) { const result = ['']; for (let i = 0; i < str.length; i++) { if (str[i] === splitterChar) { result.push(''); continue; } if (str[i] === '\\' && (str[i + 1] === '\\' || str[i + 1] === splitterChar)) i++; result[result.length - 1] += str[i]; } return result; } exports.splitEscaped = splitEscaped; function getPathFromParsedModes(modes, availableModes = []) { if (!modes.length) return ''; if (availableModes.some(mode => mode === modes[0])) return ''; let path = modes.shift(); if (os_family_1.default.win && modes.length && path.match(/^[A-Za-z]$/)) path += ':' + modes.shift(); return path; } exports.getPathFromParsedModes = getPathFromParsedModes; function getModes(modes, availableModes = []) { const result = {}; availableModes = availableModes.slice(); availableModes.forEach(key => { result[key] = false; }); while (modes.length && availableModes.length) { if (modes[0] === availableModes[0]) { result[availableModes[0]] = true; modes.shift(); } availableModes.shift(); } return result; } exports.getModes = getModes; function parseConfig(str) { const configTerminatorMatch = str.match(CONFIG_TERMINATOR_RE); if (!configTerminatorMatch) return { modesString: str, userArgs: '' }; return { modesString: str.substr(0, configTerminatorMatch.index), userArgs: str.substr(configTerminatorMatch.index + configTerminatorMatch[1].length) }; } exports.parseConfig = parseConfig; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJndW1lbnQtcGFyc2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9icm93c2VyL3Byb3ZpZGVyL3V0aWxzL2FyZ3VtZW50LXBhcnNpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBNkM7QUFDN0MsMERBQTJCO0FBRTNCLE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDO0FBRXhDLFNBQWdCLFFBQVEsQ0FBRSxLQUFLLEVBQUUsRUFBRTtJQUMvQixPQUFPLENBQUMsQ0FBQyxhQUFXLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFGRCw0QkFFQztBQUVELFNBQWdCLFNBQVMsQ0FBRSxLQUFLLEVBQUUsRUFBRTtJQUNoQyxNQUFNLE9BQU8sR0FBRyxhQUFXLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXZELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDL0MsQ0FBQztBQUpELDhCQUlDO0FBRUQsU0FBZ0IsV0FBVyxDQUFFLEtBQUssRUFBRSxFQUFFO0lBQ2xDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbkMsT0FBTyxLQUFLLElBQUksS0FBSyxLQUFLLEdBQUcsSUFBSSxLQUFLLEtBQUssT0FBTyxDQUFDO0FBQ3ZELENBQUM7QUFKRCxrQ0FJQztBQUVELFNBQWdCLFlBQVksQ0FBRSxHQUFHLEVBQUUsWUFBWTtJQUMzQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXBCLEtBQUss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cyBmaW5kRWxlbWVudCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgT1MgZnJvbSAnb3MtZmFtaWx5JztcblxuY29uc3QgQ09ORklHX1RFUk1JTkFUT1JfUkUgPSAvKFxccyt8XiktLztcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc01hdGNoIChhcnJheSwgcmUpIHtcbiAgICByZXR1cm4gISFmaW5kRWxlbWVudChhcnJheSwgZWwgPT4gZWwubWF0Y2gocmUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRNYXRjaCAoYXJyYXksIHJlKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGZpbmRFbGVtZW50KGFycmF5LCBlbCA9PiBlbC5tYXRjaChyZSkpO1xuXG4gICAgcmV0dXJuIGVsZW1lbnQgPyBlbGVtZW50Lm1hdGNoKHJlKVsxXSA6ICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNNYXRjaFRydWUgKGFycmF5LCByZSkge1xuICAgIGNvbnN0IG1hdGNoID0gZmluZE1hdGNoKGFycmF5LCByZSk7XG5cbiAgICByZXR1cm4gbWF0Y2ggJiYgbWF0Y2ggIT09ICcwJyAmJiBtYXRjaCAhPT0gJ2ZhbHNlJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0RXNjYXBlZCAoc3RyLCBzcGxpdHRlckNoYXIpIHtcbiAgICBjb25zdCByZXN1bHQgPSBbJyddO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHN0cltpXSA9PT0gc3BsaXR0ZXJDaGFyKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCgnJyk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdHJbaV0gPT09ICdcXFxcJyAmJiAoc3RyW2kgKyAxXSA9PT0gJ1xcXFwnIHx8IHN0ciBbaSArIDFdID09PSBzcGxpdHRlckNoYXIpKVxuICAgICAgICAgICAgaSsrO1xuXG4gICAgICAgIHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0gKz0gc3RyW2ldO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXRoRnJvbVBhcnNlZE1vZGVzIChtb2RlcywgYXZhaWxhYmxlTW9kZXMgPSBbXSkge1xuICAgIGlmICghbW9kZXMubGVuZ3RoKVxuICAgICAgICByZXR1cm4gJyc7XG5cbiAgICBpZiAoYXZhaWxhYmxlTW9kZXMuc29tZShtb2RlID0+IG1vZGUgPT09IG1vZGVzWzBdKSlcbiAgICAgICAgcmV0dXJuICcnO1xuXG4gICAgbGV0IHBhdGggPSBtb2Rlcy5zaGlmdCgpO1xuXG4gICAgaWYgKE9TLndpbiAmJiBtb2Rlcy5sZW5ndGggJiYgcGF0aC5tYXRjaCgvXltBLVphLXpdJC8pKVxuICAgICAgICBwYXRoICs9ICc6JyArIG1vZGVzLnNoaWZ0KCk7XG5cbiAgICByZXR1cm4gcGF0aDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vZGVzIChtb2RlcywgYXZhaWxhYmxlTW9kZXMgPSBbXSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuXG4gICAgYXZhaWxhYmxlTW9kZXMgPSBhdmFpbGFibGVNb2Rlcy5zbGljZSgpO1xuXG4gICAgYXZhaWxhYmxlTW9kZXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICByZXN1bHRba2V5XSA9IGZhbHNlO1xuICAgIH0pO1xuXG4gICAgd2hpbGUgKG1vZGVzLmxlbmd0aCAmJiBhdmFpbGFibGVNb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKG1vZGVzWzBdID09PSBhdmFpbGFibGVNb2Rlc1swXSkge1xuICAgICAgICAgICAgcmVzdWx0W2F2YWlsYWJsZU1vZGVzWzBdXSA9IHRydWU7XG5cbiAgICAgICAgICAgIG1vZGVzLnNoaWZ0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBhdmFpbGFibGVNb2Rlcy5zaGlmdCgpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNvbmZpZyAoc3RyKSB7XG4gICAgY29uc3QgY29uZmlnVGVybWluYXRvck1hdGNoID0gc3RyLm1hdGNoKENPTkZJR19URVJNSU5BVE9SX1JFKTtcblxuICAgIGlmICghY29uZmlnVGVybWluYXRvck1hdGNoKVxuICAgICAgICByZXR1cm4geyBtb2Rlc1N0cmluZzogc3RyLCB1c2VyQXJnczogJycgfTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIG1vZGVzU3RyaW5nOiBzdHIuc3Vic3RyKDAsIGNvbmZpZ1Rlcm1pbmF0b3JNYXRjaC5pbmRleCksXG4gICAgICAgIHVzZXJBcmdzOiAgICBzdHIuc3Vic3RyKGNvbmZpZ1Rlcm1pbmF0b3JNYXRjaC5pbmRleCArIGNvbmZpZ1Rlcm1pbmF0b3JNYXRjaFsxXS5sZW5ndGgpXG4gICAgfTtcbn1cbiJdfQ==