testcafe
Version:
Automated browser testing for the modern web development stack.
62 lines • 8.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCommonElement = exports.equals = exports.remove = exports.find = exports.from = exports.isArray = exports.every = exports.join = exports.concat = exports.reduce = exports.reverse = exports.some = exports.indexOf = exports.forEach = exports.unshift = exports.splice = exports.slice = exports.map = exports.filter = void 0;
const hammerhead_1 = require("../deps/hammerhead");
const ARRAY_METHODS_PREFIX = 'array';
function createNativeMethodWrapper(methodName) {
const nativeMethodName = ARRAY_METHODS_PREFIX + methodName.charAt(0).toUpperCase() + methodName.slice(1);
const nativeMethod = hammerhead_1.nativeMethods[nativeMethodName];
return (...args) => nativeMethod.call(...args);
}
exports.filter = createNativeMethodWrapper('filter');
exports.map = createNativeMethodWrapper('map');
exports.slice = createNativeMethodWrapper('slice');
exports.splice = createNativeMethodWrapper('splice');
exports.unshift = createNativeMethodWrapper('unshift');
exports.forEach = createNativeMethodWrapper('forEach');
exports.indexOf = createNativeMethodWrapper('indexOf');
exports.some = createNativeMethodWrapper('some');
exports.reverse = createNativeMethodWrapper('reverse');
exports.reduce = createNativeMethodWrapper('reduce');
exports.concat = createNativeMethodWrapper('concat');
exports.join = createNativeMethodWrapper('join');
exports.every = createNativeMethodWrapper('every');
function isArray(arg) {
return hammerhead_1.nativeMethods.objectToString.call(arg) === '[object Array]';
}
exports.isArray = isArray;
function from(arg, ...args) {
return hammerhead_1.nativeMethods.arrayFrom(arg, ...args);
}
exports.from = from;
function find(arr, callback) {
return hammerhead_1.nativeMethods.arrayFind.call(arr, callback);
}
exports.find = find;
function remove(arr, item) {
const index = hammerhead_1.nativeMethods.arrayIndexOf.call(arr, item);
if (index > -1)
hammerhead_1.nativeMethods.arraySplice.call(arr, index, 1);
}
exports.remove = remove;
function equals(arr1, arr2) {
if (arr1.length !== arr2.length)
return false;
for (let i = 0, l = arr1.length; i < l; i++) {
if (arr1[i] !== arr2[i])
return false;
}
return true;
}
exports.equals = equals;
function getCommonElement(arr1, arr2) {
for (let i = 0; i < arr1.length; i++) {
for (let t = 0; t < arr2.length; t++) {
if (arr1[i] === arr2[t])
return arr1[i];
}
}
return null;
}
exports.getCommonElement = getCommonElement;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2NvcmUvdXRpbHMvYXJyYXkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQW1EO0FBRW5ELE1BQU0sb0JBQW9CLEdBQUcsT0FBTyxDQUFDO0FBRXJDLFNBQVMseUJBQXlCLENBQUUsVUFBVTtJQUMxQyxNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RyxNQUFNLFlBQVksR0FBTywwQkFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFekQsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFJLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzlDLFFBQUEsR0FBRyxHQUFPLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNDLFFBQUEsS0FBSyxHQUFLLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdDLFFBQUEsTUFBTSxHQUFJLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzlDLFFBQUEsT0FBTyxHQUFHLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9DLFFBQUEsT0FBTyxHQUFHLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9DLFFBQUEsT0FBTyxHQUFHLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9DLFFBQUEsSUFBSSxHQUFNLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLFFBQUEsT0FBTyxHQUFHLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9DLFFBQUEsTUFBTSxHQUFJLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzlDLFFBQUEsTUFBTSxHQUFJLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzlDLFFBQUEsSUFBSSxHQUFNLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLFFBQUEsS0FBSyxHQUFLLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRTFELFNBQWdCLE9BQU8sQ0FBRSxHQUFHO0lBQ3hCLE9BQU8sMEJBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLGdCQUFnQixDQUFDO0FBQ3ZFLENBQUM7QUFGRCwwQkFFQztBQUVELFNBQWdCLElBQUksQ0FBRSxHQUFHLEVBQUUsR0FBRyxJQUFJO0lBQzlCLE9BQU8sMEJBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUZELG9CQUVDO0FBRUQsU0FBZ0IsSUFBSSxDQUFFLEdBQUcsRUFBRSxRQUFRO0lBQy9CLE9BQU8sMEJBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRkQsb0JBRUM7QUFFRCxTQUFnQixNQUFNLENBQUUsR0FBRyxFQUFFLElBQUk7SUFDN0IsTUFBTSxLQUFLLEdBQUcsMEJBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUV6RCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDViwwQkFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBTEQsd0JBS0M7QUFFRCxTQUFnQixNQUFNLENBQUUsSUFBSSxFQUFFLElBQUk7SUFDOUIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0lBRWpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDekMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuQixPQUFPLEtBQUssQ0FBQztLQUNwQjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFWRCx3QkFVQztBQUVELFNBQWdCLGdCQUFnQixDQUFFLElBQUksRUFBRSxJQUFJO0lBQ3hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RCO0tBQ0o7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBVEQsNENBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBuYXRpdmVNZXRob2RzIH0gZnJvbSAnLi4vZGVwcy9oYW1tZXJoZWFkJztcblxuY29uc3QgQVJSQVlfTUVUSE9EU19QUkVGSVggPSAnYXJyYXknO1xuXG5mdW5jdGlvbiBjcmVhdGVOYXRpdmVNZXRob2RXcmFwcGVyIChtZXRob2ROYW1lKSB7XG4gICAgY29uc3QgbmF0aXZlTWV0aG9kTmFtZSA9IEFSUkFZX01FVEhPRFNfUFJFRklYICsgbWV0aG9kTmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIG1ldGhvZE5hbWUuc2xpY2UoMSk7XG4gICAgY29uc3QgbmF0aXZlTWV0aG9kICAgICA9IG5hdGl2ZU1ldGhvZHNbbmF0aXZlTWV0aG9kTmFtZV07XG5cbiAgICByZXR1cm4gKC4uLmFyZ3MpID0+IG5hdGl2ZU1ldGhvZC5jYWxsKC4uLmFyZ3MpO1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyICA9IGNyZWF0ZU5hdGl2ZU1ldGhvZFdyYXBwZXIoJ2ZpbHRlcicpO1xuZXhwb3J0IGNvbnN0IG1hcCAgICAgPSBjcmVhdGVOYXRpdmVNZXRob2RXcmFwcGVyKCdtYXAnKTtcbmV4cG9ydCBjb25zdCBzbGljZSAgID0gY3JlYXRlTmF0aXZlTWV0aG9kV3JhcHBlcignc2xpY2UnKTtcbmV4cG9ydCBjb25zdCBzcGxpY2UgID0gY3JlYXRlTmF0aXZlTWV0aG9kV3JhcHBlcignc3BsaWNlJyk7XG5leHBvcnQgY29uc3QgdW5zaGlmdCA9IGNyZWF0ZU5hdGl2ZU1ldGhvZFdyYXBwZXIoJ3Vuc2hpZnQnKTtcbmV4cG9ydCBjb25zdCBmb3JFYWNoID0gY3JlYXRlTmF0aXZlTWV0aG9kV3JhcHBlcignZm9yRWFjaCcpO1xuZXhwb3J0IGNvbnN0IGluZGV4T2YgPSBjcmVhdGVOYXRpdmVNZXRob2RXcmFwcGVyKCdpbmRleE9mJyk7XG5leHBvcnQgY29uc3Qgc29tZSAgICA9IGNyZWF0ZU5hdGl2ZU1ldGhvZFdyYXBwZXIoJ3NvbWUnKTtcbmV4cG9ydCBjb25zdCByZXZlcnNlID0gY3JlYXRlTmF0aXZlTWV0aG9kV3JhcHBlcigncmV2ZXJzZScpO1xuZXhwb3J0IGNvbnN0IHJlZHVjZSAgPSBjcmVhdGVOYXRpdmVNZXRob2RXcmFwcGVyKCdyZWR1Y2UnKTtcbmV4cG9ydCBjb25zdCBjb25jYXQgID0gY3JlYXRlTmF0aXZlTWV0aG9kV3JhcHBlcignY29uY2F0Jyk7XG5leHBvcnQgY29uc3Qgam9pbiAgICA9IGNyZWF0ZU5hdGl2ZU1ldGhvZFdyYXBwZXIoJ2pvaW4nKTtcbmV4cG9ydCBjb25zdCBldmVyeSAgID0gY3JlYXRlTmF0aXZlTWV0aG9kV3JhcHBlcignZXZlcnknKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXkgKGFyZykge1xuICAgIHJldHVybiBuYXRpdmVNZXRob2RzLm9iamVjdFRvU3RyaW5nLmNhbGwoYXJnKSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyb20gKGFyZywgLi4uYXJncykge1xuICAgIHJldHVybiBuYXRpdmVNZXRob2RzLmFycmF5RnJvbShhcmcsIC4uLmFyZ3MpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZCAoYXJyLCBjYWxsYmFjaykge1xuICAgIHJldHVybiBuYXRpdmVNZXRob2RzLmFycmF5RmluZC5jYWxsKGFyciwgY2FsbGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlIChhcnIsIGl0ZW0pIHtcbiAgICBjb25zdCBpbmRleCA9IG5hdGl2ZU1ldGhvZHMuYXJyYXlJbmRleE9mLmNhbGwoYXJyLCBpdGVtKTtcblxuICAgIGlmIChpbmRleCA+IC0xKVxuICAgICAgICBuYXRpdmVNZXRob2RzLmFycmF5U3BsaWNlLmNhbGwoYXJyLCBpbmRleCwgMSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcXVhbHMgKGFycjEsIGFycjIpIHtcbiAgICBpZiAoYXJyMS5sZW5ndGggIT09IGFycjIubGVuZ3RoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IGFycjEubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGlmIChhcnIxW2ldICE9PSBhcnIyW2ldKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tbW9uRWxlbWVudCAoYXJyMSwgYXJyMikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyMS5sZW5ndGg7IGkrKykge1xuICAgICAgICBmb3IgKGxldCB0ID0gMDsgdCA8IGFycjIubGVuZ3RoOyB0KyspIHtcbiAgICAgICAgICAgIGlmIChhcnIxW2ldID09PSBhcnIyW3RdKVxuICAgICAgICAgICAgICAgIHJldHVybiBhcnIxW2ldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbiJdfQ==