@browserstack/testcafe
Version:
Automated browser testing for the modern web development stack.
74 lines • 8.98 kB
JavaScript
;
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==