UNPKG

metaapi.cloud-sdk

Version:

SDK for MetaApi, a professional cloud forex API which includes MetaTrader REST API and MetaTrader websocket API. Supports both MetaTrader 5 (MT5) and MetaTrader 4 (MT4). CopyFactory copy trading API included. (https://metaapi.cloud)

45 lines (44 loc) 3.81 kB
/** * Return an array with the numbers from 0 to n-1, in a random order */ "use strict"; function getRandomArray(n) { let res, next; if (n === 0) { return []; } if (n === 1) { return [ 0 ]; } res = getRandomArray(n - 1); next = Math.floor(Math.random() * n); res.splice(next, 0, n - 1); // Add n-1 at a random position in the array return res; } module.exports.getRandomArray = getRandomArray; /* * Default compareKeys function will work for numbers, strings and dates */ function defaultCompareKeysFunction(a, b) { if (a < b) { return -1; } if (a > b) { return 1; } if (a === b) { return 0; } let err = new Error("Couldn't compare elements"); err.a = a; err.b = b; throw err; } module.exports.defaultCompareKeysFunction = defaultCompareKeysFunction; /** * Check whether two values are equal (used in non-unique deletion) */ function defaultCheckValueEquality(a, b) { return a === b; } module.exports.defaultCheckValueEquality = defaultCheckValueEquality; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxhbm9uPiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBudW1iZXJzIGZyb20gMCB0byBuLTEsIGluIGEgcmFuZG9tIG9yZGVyXG4gKi9cbmZ1bmN0aW9uIGdldFJhbmRvbUFycmF5IChuKSB7XG4gIGxldCByZXMsIG5leHQ7XG5cbiAgaWYgKG4gPT09IDApIHsgcmV0dXJuIFtdOyB9XG4gIGlmIChuID09PSAxKSB7IHJldHVybiBbMF07IH1cblxuICByZXMgPSBnZXRSYW5kb21BcnJheShuIC0gMSk7XG4gIG5leHQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBuKTtcbiAgcmVzLnNwbGljZShuZXh0LCAwLCBuIC0gMSk7ICAgLy8gQWRkIG4tMSBhdCBhIHJhbmRvbSBwb3NpdGlvbiBpbiB0aGUgYXJyYXlcblxuICByZXR1cm4gcmVzO1xufVxubW9kdWxlLmV4cG9ydHMuZ2V0UmFuZG9tQXJyYXkgPSBnZXRSYW5kb21BcnJheTtcblxuXG4vKlxuICogRGVmYXVsdCBjb21wYXJlS2V5cyBmdW5jdGlvbiB3aWxsIHdvcmsgZm9yIG51bWJlcnMsIHN0cmluZ3MgYW5kIGRhdGVzXG4gKi9cbmZ1bmN0aW9uIGRlZmF1bHRDb21wYXJlS2V5c0Z1bmN0aW9uIChhLCBiKSB7XG4gIGlmIChhIDwgYikgeyByZXR1cm4gLTE7IH1cbiAgaWYgKGEgPiBiKSB7IHJldHVybiAxOyB9XG4gIGlmIChhID09PSBiKSB7IHJldHVybiAwOyB9XG5cbiAgbGV0IGVyciA9IG5ldyBFcnJvcignQ291bGRuXFwndCBjb21wYXJlIGVsZW1lbnRzJyk7XG4gIGVyci5hID0gYTtcbiAgZXJyLmIgPSBiO1xuICB0aHJvdyBlcnI7XG59XG5tb2R1bGUuZXhwb3J0cy5kZWZhdWx0Q29tcGFyZUtleXNGdW5jdGlvbiA9IGRlZmF1bHRDb21wYXJlS2V5c0Z1bmN0aW9uO1xuXG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0d28gdmFsdWVzIGFyZSBlcXVhbCAodXNlZCBpbiBub24tdW5pcXVlIGRlbGV0aW9uKVxuICovXG5mdW5jdGlvbiBkZWZhdWx0Q2hlY2tWYWx1ZUVxdWFsaXR5IChhLCBiKSB7XG4gIHJldHVybiBhID09PSBiO1xufVxubW9kdWxlLmV4cG9ydHMuZGVmYXVsdENoZWNrVmFsdWVFcXVhbGl0eSA9IGRlZmF1bHRDaGVja1ZhbHVlRXF1YWxpdHk7XG4iXSwibmFtZXMiOlsiZ2V0UmFuZG9tQXJyYXkiLCJuIiwicmVzIiwibmV4dCIsIk1hdGgiLCJmbG9vciIsInJhbmRvbSIsInNwbGljZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJkZWZhdWx0Q29tcGFyZUtleXNGdW5jdGlvbiIsImEiLCJiIiwiZXJyIiwiRXJyb3IiLCJkZWZhdWx0Q2hlY2tWYWx1ZUVxdWFsaXR5Il0sIm1hcHBpbmdzIjoiQUFBQTs7Q0FFQztBQUNELFNBQVNBLGVBQWdCQyxDQUFDO0lBQ3hCLElBQUlDLEtBQUtDO0lBRVQsSUFBSUYsTUFBTSxHQUFHO1FBQUUsT0FBTyxFQUFFO0lBQUU7SUFDMUIsSUFBSUEsTUFBTSxHQUFHO1FBQUUsT0FBTztZQUFDO1NBQUU7SUFBRTtJQUUzQkMsTUFBTUYsZUFBZUMsSUFBSTtJQUN6QkUsT0FBT0MsS0FBS0MsS0FBSyxDQUFDRCxLQUFLRSxNQUFNLEtBQUtMO0lBQ2xDQyxJQUFJSyxNQUFNLENBQUNKLE1BQU0sR0FBR0YsSUFBSSxJQUFNLDRDQUE0QztJQUUxRSxPQUFPQztBQUNUO0FBQ0FNLE9BQU9DLE9BQU8sQ0FBQ1QsY0FBYyxHQUFHQTtBQUdoQzs7Q0FFQyxHQUNELFNBQVNVLDJCQUE0QkMsQ0FBQyxFQUFFQyxDQUFDO0lBQ3ZDLElBQUlELElBQUlDLEdBQUc7UUFBRSxPQUFPLENBQUM7SUFBRztJQUN4QixJQUFJRCxJQUFJQyxHQUFHO1FBQUUsT0FBTztJQUFHO0lBQ3ZCLElBQUlELE1BQU1DLEdBQUc7UUFBRSxPQUFPO0lBQUc7SUFFekIsSUFBSUMsTUFBTSxJQUFJQyxNQUFNO0lBQ3BCRCxJQUFJRixDQUFDLEdBQUdBO0lBQ1JFLElBQUlELENBQUMsR0FBR0E7SUFDUixNQUFNQztBQUNSO0FBQ0FMLE9BQU9DLE9BQU8sQ0FBQ0MsMEJBQTBCLEdBQUdBO0FBRzVDOztDQUVDLEdBQ0QsU0FBU0ssMEJBQTJCSixDQUFDLEVBQUVDLENBQUM7SUFDdEMsT0FBT0QsTUFBTUM7QUFDZjtBQUNBSixPQUFPQyxPQUFPLENBQUNNLHlCQUF5QixHQUFHQSJ9