UNPKG

@knine-sdk/fetch

Version:
30 lines (23 loc) 1.29 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib_es6 = require('./node_modules/tslib/tslib.es6.js'); var invariant = require('tiny-invariant'); var fetchWithFallbacks = require('./fetchWithFallbacks.js'); var providersUrls = require('./providersUrls.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var invariant__default = /*#__PURE__*/_interopDefaultLegacy(invariant); const fetchRPC = (chainId, options) => { const { providers = {}, urls = [] } = options, init = tslib_es6.__rest(options, ["providers", "urls"]); const customUrls = urls.map((value) => { let url = value; if (typeof value === 'function') url = value(chainId); invariant__default["default"](typeof url === 'string', 'URL should be a string'); return url; }); const providersUrls$1 = providersUrls.getRPCUrls(chainId, providers); const combinedUrls = [...customUrls, ...providersUrls$1]; invariant__default["default"](combinedUrls.length > 0, 'There are no API keys or URLs provided'); return fetchWithFallbacks.fetchWithFallbacks(combinedUrls, Object.assign({ method: 'POST' }, init)); }; exports.fetchRPC = fetchRPC;