UNPKG

revolut-sdk

Version:
29 lines (28 loc) 1.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const axios_1 = require("axios"); const function_1 = require("fp-ts/lib/function"); const Reader_1 = require("fp-ts/lib/Reader"); const accounts_1 = require("./api/accounts"); const counterparties_1 = require("./api/counterparties"); const payments_1 = require("./api/payments"); const API_VERSION = '1.0'; const defaultConfig = { apiVersion: API_VERSION, sandbox: false }; exports.getBaseURL = (config) => `https://${config.sandbox ? 'sandbox-b2b' : 'b2b'}.revolut.com/api/${config.apiVersion}`; const getAxiosInstance = (config) => axios_1.default.create({ baseURL: exports.getBaseURL(config), headers: { Authorization: `Bearer ${config.apiKey}` } }); const getRevolutClient = (client) => ({ accounts: new accounts_1.default(client), counterparties: new counterparties_1.default(client), payments: new payments_1.default(client) }); const applyDefault = (config) => (Object.assign({}, defaultConfig, config)); const RevolutClient = Reader_1.asks(applyDefault).map(function_1.compose(getRevolutClient, getAxiosInstance)); exports.RevolutClient = RevolutClient;