revolut-sdk
Version:
SDK for Revolut API
29 lines (28 loc) • 1.18 kB
JavaScript
;
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;