UNPKG

@exchanges/binance

Version:

Exchange provider for Binance API

122 lines 5.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.apiCall = void 0; const __1 = require(".."); const clients_1 = require("../clients"); const apiKeyCall_1 = require("./apiKeyCall"); const apiSecretCall_1 = require("./apiSecretCall"); const publicCall_1 = require("./publicCall"); const socketCall_1 = require("./socketCall"); const userDataCall_1 = require("./userDataCall"); function apiCall(options, callback) { if (!options) throw new TypeError('apiCall options is empty'); if (typeof options !== 'object') throw new TypeError('apiCall options is not object'); if (!options.host) throw new TypeError('apiCall options.host is empty'); if (!options.path) throw new TypeError('apiCall options.path is empty'); if (!options.securityType) throw new TypeError('apiCall options.securityType is empty'); if (!options.client) throw new TypeError('apiCall options.client is empty'); if (options.securityType !== 'NONE' && options.securityType !== 'USER_STREAM' && options.securityType !== 'MARKET_DATA' && options.securityType !== 'TRADE' && options.securityType !== 'MARGIN' && options.securityType !== 'USER_DATA' && options.securityType !== 'SOCKET' && options.securityType !== 'USER_DATA_STREAM') throw new TypeError('apiCall options.type is not correct'); if ((options.securityType === 'NONE' || options.securityType === 'SOCKET') && !(options.client instanceof clients_1.BinanceClient)) throw new TypeError('apiCall options.client is not BinanceClient'); if ((options.securityType === 'USER_STREAM' || options.securityType === 'USER_DATA_STREAM' || options.securityType === 'MARKET_DATA') && !(options.client instanceof clients_1.BinanceKeyClient)) throw new TypeError('apiCall options.client is not BinanceKeyClient'); if ((options.securityType === 'TRADE' || options.securityType === 'MARGIN' || options.securityType === 'USER_DATA') && !(options.client instanceof clients_1.BinanceSignedClient)) throw new TypeError('apiCall options.client is not BinanceSignedClient'); // Callback вызов if (options.securityType === 'SOCKET' || options.securityType === 'USER_DATA_STREAM') { if (!callback) throw new TypeError('apiCall socket callback is empty'); if (typeof callback !== 'function') throw new TypeError('apiCall socket callback is not correct'); if (options.securityType === 'SOCKET') { return (0, socketCall_1.socketCall)({ host: getHost(options.client, options.host, true), path: options.path }, callback); } if (options.securityType === 'USER_DATA_STREAM') { return (0, userDataCall_1.userDataCall)({ client: options.client, host: options.host, path: options.path, data: options.data }, callback); } } // Обычный вызов if (!options.method) throw new TypeError('apiCall options.method is empty'); if (options.method !== 'GET' && options.method !== 'POST' && options.method !== 'PUT' && options.method !== 'DELETE') throw new TypeError('apiCall options.method is not correct'); const host = getHost(options.client, options.host, false); if (options.securityType === 'NONE') { return (0, publicCall_1.publicCall)({ axios: options.client.axios, host, path: options.path, method: options.method, data: options.data, }); } if (options.securityType === 'USER_STREAM' || options.securityType === 'MARKET_DATA') { return (0, apiKeyCall_1.apiKeyCall)({ axios: options.client.axios, host, path: options.path, method: options.method, data: options.data, apiKey: options.client.apiKey, }); } if (options.securityType === 'TRADE' || options.securityType === 'MARGIN' || options.securityType === 'USER_DATA') { return (0, apiSecretCall_1.apiSecretCall)({ axios: options.client.axios, host, path: options.path, method: options.method, data: options.data, apiKey: options.client.apiKey, apiSecret: options.client.apiSecret, getTime: options.client.getTime, noTimestamp: options.noTimestamp, noSignature: options.noSignature, }); } throw __1.BinanceError.UnknownError(); } exports.apiCall = apiCall; function getHost(client, host, isSocket) { if (host === 'spot') { if (isSocket) return client.spotSocketEndpoint; return client.spotApiEndpoint; } if (host === 'usdtM') { if (isSocket) return client.usdFuturesSocketEndpoint; return client.usdFuturesApiEndpoint; } if (host === 'coinM') { if (isSocket) return client.coinFuturesSocketEndpoint; return client.coinFuturesApiEndpoint; } if (host === 'vanilla') { if (isSocket) return client.vanillaSocketEndpoint; return client.vanillaApiEndpoint; } throw new TypeError('apiCall options.host is not correct'); } //# sourceMappingURL=apiCall.js.map