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)

53 lines (52 loc) 6.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { destroyInternalClientSocket: function() { return destroyInternalClientSocket; }, getClientSocketIoTransportName: function() { return getClientSocketIoTransportName; }, getSocketStickySessionId: function() { return getSocketStickySessionId; }, sendHistory: function() { return sendHistory; }, supportsStickySocketProtocol: function() { return supportsStickySocketProtocol; } }); function getSocketStickySessionId(socket) { return socket.handshake.query["stickySocketConnectionId"] || socket.id; // eslint-disable-line dot-notation } function supportsStickySocketProtocol(socket) { return !!socket.handshake.query["stickySocketConnectionId"]; // eslint-disable-line dot-notation } function getClientSocketIoTransportName(socket) { return socket.io.engine.transport.name; } function destroyInternalClientSocket(socket, err) { socket.io.engine.transport.ws._socket.destroy(err); } function sendHistory(socket, history, startIndex) { while(history.length && history.front().index < startIndex){ history.shift(); } for (let packet of history){ packet.time = new Date(); socket.emit(packet.event, { index: packet.index, data: packet.data }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIjxhbm9uPiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU29ja2V0SU8gZnJvbSAnc29ja2V0LmlvJztcbmltcG9ydCB7RW1pdEhpc3RvcnlQYWNrZXQsIEVtaXRQYWNrZXR9IGZyb20gJy4vY29tbW9uLnR5cGVzJztcbmltcG9ydCBRdWV1ZSBmcm9tICcuLi8uLi90b29scy9xdWV1ZSc7XG5cbi8qKlxuICogUmV0dXJucyBzb2NrZXQgc3RpY2t5IHNlc3Npb24gSURcbiAqIEBwYXJhbSBzb2NrZXQgbmF0aXZlIHNvY2tldC5pbyBzb2NrZXRcbiAqIEByZXR1cm5zIHN0aWNreSBzZXNzaW9uIElEXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTb2NrZXRTdGlja3lTZXNzaW9uSWQoc29ja2V0OiBTb2NrZXRJTy5Tb2NrZXQpOiBzdHJpbmcge1xuICByZXR1cm4gc29ja2V0LmhhbmRzaGFrZS5xdWVyeVsnc3RpY2t5U29ja2V0Q29ubmVjdGlvbklkJ10gfHwgc29ja2V0LmlkOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGRvdC1ub3RhdGlvblxufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBhIHNvY2tldCBzdXBwb3J0cyBzdGlja3kgc29ja2V0IHByb3RvY29sXG4gKiBAcGFyYW0gc29ja2V0IG5hdGl2ZSBzb2NrZXQuaW8gc29ja2V0XG4gKiBAcmV0dXJucyB3aGV0aGVyIHN1cHBvcnRzIHRoZSBwcm90b2NvbFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydHNTdGlja3lTb2NrZXRQcm90b2NvbChzb2NrZXQ6IFNvY2tldElPLlNvY2tldCk6IGJvb2xlYW4ge1xuICByZXR1cm4gISFzb2NrZXQuaGFuZHNoYWtlLnF1ZXJ5WydzdGlja3lTb2NrZXRDb25uZWN0aW9uSWQnXTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBkb3Qtbm90YXRpb25cbn1cblxuLyoqXG4gKiBSZXR1cm5zIGNsaWVudCBzb2NrZXQuaW8gc29ja2V0IHRyYW5zcG9ydFxuICogQHBhcmFtIHNvY2tldCBuYXRpdmUgc29ja2V0LmlvIHNvY2tldFxuICogQHJldHVybnMgY3VycmVudCB0cmFuc3BvcnQgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xpZW50U29ja2V0SW9UcmFuc3BvcnROYW1lKHNvY2tldDogU29ja2V0SU9DbGllbnQuU29ja2V0KTogc3RyaW5nIHtcbiAgcmV0dXJuIChzb2NrZXQuaW8gYXMgYW55KS5lbmdpbmUudHJhbnNwb3J0Lm5hbWU7XG59XG5cbi8qKlxuICogRGVzdHJveXMgdW5kZXJseWluZyBzb2NrZXQgb2YgYSBjbGllbnQgc29ja2V0LCB1c2luZyBzb2NrZXQuaW8gaW50ZXJuYWxzLiBUaGUgc29ja2V0IG11c3QgaGF2ZSBgd2Vic29ja2V0YCB0cmFuc3BvcnRcbiAqIEBwYXJhbSBzb2NrZXQgbmF0aXZlIHNvY2tldC5pbyBzb2NrZXRcbiAqIEBwYXJhbSBlcnIgb3B0aW9uYWwgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc3Ryb3lJbnRlcm5hbENsaWVudFNvY2tldChzb2NrZXQ6IFNvY2tldElPQ2xpZW50LlNvY2tldCwgZXJyPzogRXJyb3IpIHtcbiAgKHNvY2tldC5pbyBhcyBhbnkpLmVuZ2luZS50cmFuc3BvcnQud3MuX3NvY2tldC5kZXN0cm95KGVycik7XG59XG5cbi8qKlxuICogU2VuZHMgaGlzdG9yeSBldmVudHMgdG8gYSBzb2NrZXRcbiAqIEBwYXJhbSBzb2NrZXQgc29ja2V0IHRvIHNlbmQgdG9cbiAqIEBwYXJhbSBoaXN0b3J5IGhpc3RvcnkgdG8gc2VuZCBmcm9tICh3aWxsIGJlIG1vZGlmaWVkKVxuICogQHBhcmFtIHN0YXJ0SW5kZXggc3RhcnQgcGFja2V0IGluZGV4IHRvIHN0cmVhbSBmcm9tXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZW5kSGlzdG9yeShcbiAgc29ja2V0OiBTb2NrZXRJT0NsaWVudC5Tb2NrZXQgfCBTb2NrZXRJTy5Tb2NrZXQsIGhpc3Rvcnk6IFF1ZXVlPEVtaXRIaXN0b3J5UGFja2V0Piwgc3RhcnRJbmRleDogbnVtYmVyXG4pIHtcbiAgd2hpbGUgKGhpc3RvcnkubGVuZ3RoICYmIGhpc3RvcnkuZnJvbnQoKS5pbmRleCA8IHN0YXJ0SW5kZXgpIHtcbiAgICBoaXN0b3J5LnNoaWZ0KCk7XG4gIH1cbiAgZm9yIChsZXQgcGFja2V0IG9mIGhpc3RvcnkpIHtcbiAgICBwYWNrZXQudGltZSA9IG5ldyBEYXRlKCk7XG4gICAgc29ja2V0LmVtaXQocGFja2V0LmV2ZW50LCB7XG4gICAgICBpbmRleDogcGFja2V0LmluZGV4LFxuICAgICAgZGF0YTogcGFja2V0LmRhdGFcbiAgICB9IHNhdGlzZmllcyBFbWl0UGFja2V0KTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbImRlc3Ryb3lJbnRlcm5hbENsaWVudFNvY2tldCIsImdldENsaWVudFNvY2tldElvVHJhbnNwb3J0TmFtZSIsImdldFNvY2tldFN0aWNreVNlc3Npb25JZCIsInNlbmRIaXN0b3J5Iiwic3VwcG9ydHNTdGlja3lTb2NrZXRQcm90b2NvbCIsInNvY2tldCIsImhhbmRzaGFrZSIsInF1ZXJ5IiwiaWQiLCJpbyIsImVuZ2luZSIsInRyYW5zcG9ydCIsIm5hbWUiLCJlcnIiLCJ3cyIsIl9zb2NrZXQiLCJkZXN0cm95IiwiaGlzdG9yeSIsInN0YXJ0SW5kZXgiLCJsZW5ndGgiLCJmcm9udCIsImluZGV4Iiwic2hpZnQiLCJwYWNrZXQiLCJ0aW1lIiwiRGF0ZSIsImVtaXQiLCJldmVudCIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBb0NnQkEsMkJBQTJCO2VBQTNCQTs7SUFUQUMsOEJBQThCO2VBQTlCQTs7SUFsQkFDLHdCQUF3QjtlQUF4QkE7O0lBcUNBQyxXQUFXO2VBQVhBOztJQTVCQUMsNEJBQTRCO2VBQTVCQTs7O0FBVFQsU0FBU0YseUJBQXlCRyxNQUF1QjtJQUM5RCxPQUFPQSxPQUFPQyxTQUFTLENBQUNDLEtBQUssQ0FBQywyQkFBMkIsSUFBSUYsT0FBT0csRUFBRSxFQUFFLG1DQUFtQztBQUM3RztBQU9PLFNBQVNKLDZCQUE2QkMsTUFBdUI7SUFDbEUsT0FBTyxDQUFDLENBQUNBLE9BQU9DLFNBQVMsQ0FBQ0MsS0FBSyxDQUFDLDJCQUEyQixFQUFFLG1DQUFtQztBQUNsRztBQU9PLFNBQVNOLCtCQUErQkksTUFBNkI7SUFDMUUsT0FBTyxBQUFDQSxPQUFPSSxFQUFFLENBQVNDLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxJQUFJO0FBQ2pEO0FBT08sU0FBU1osNEJBQTRCSyxNQUE2QixFQUFFUSxHQUFXO0lBQ25GUixPQUFPSSxFQUFFLENBQVNDLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDRyxFQUFFLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDSDtBQUN6RDtBQVFPLFNBQVNWLFlBQ2RFLE1BQStDLEVBQUVZLE9BQWlDLEVBQUVDLFVBQWtCO0lBRXRHLE1BQU9ELFFBQVFFLE1BQU0sSUFBSUYsUUFBUUcsS0FBSyxHQUFHQyxLQUFLLEdBQUdILFdBQVk7UUFDM0RELFFBQVFLLEtBQUs7SUFDZjtJQUNBLEtBQUssSUFBSUMsVUFBVU4sUUFBUztRQUMxQk0sT0FBT0MsSUFBSSxHQUFHLElBQUlDO1FBQ2xCcEIsT0FBT3FCLElBQUksQ0FBQ0gsT0FBT0ksS0FBSyxFQUFFO1lBQ3hCTixPQUFPRSxPQUFPRixLQUFLO1lBQ25CTyxNQUFNTCxPQUFPSyxJQUFJO1FBQ25CO0lBQ0Y7QUFDRiJ9