@rarimo/shared
Version:
Utility functions, types and constants shared across Rarimo packages.
96 lines (95 loc) • 2.87 kB
JavaScript
;
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, {
CONFIG: function() {
return CONFIG;
},
createApi: function() {
return createApi;
},
coreApi: function() {
return coreApi;
},
dexApi: function() {
return dexApi;
},
loadAllPagesData: function() {
return loadAllPagesData;
}
});
const _jac = require(/*#__PURE__*/ "@distributedlab/jac");
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
try {
var info = gen[key](arg);
var value = info.value;
} catch (error) {
reject(error);
return;
}
if (info.done) {
resolve(value);
} else {
Promise.resolve(value).then(_next, _throw);
}
}
function _async_to_generator(fn) {
return function() {
var self = this, args = arguments;
return new Promise(function(resolve, reject) {
var gen = fn.apply(self, args);
function _next(value) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
}
function _throw(err) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
}
_next(undefined);
});
};
}
const CONFIG = {
CORE_API_BASE_URL: 'https://api.rarify.tokend.io',
DEX_API_BASE_URL: 'https://api.rarimo.com/dexoracle',
MAX_PAGE_LIMIT: 500
};
const getOrigin = ()=>{
if (typeof window === 'undefined') return '';
var _window_origin;
return (_window_origin = window === null || window === void 0 ? void 0 : window.origin) !== null && _window_origin !== void 0 ? _window_origin : '';
};
const createApi = (baseUrl)=>{
return new _jac.JsonApiClient({
baseUrl,
headers: {
'Content-Type': 'application/json',
Origin: getOrigin()
},
credentials: 'omit'
});
};
const coreApi = createApi(CONFIG.CORE_API_BASE_URL);
const dexApi = createApi(CONFIG.DEX_API_BASE_URL);
const loadAllPagesData = function() {
var _ref = _async_to_generator(function*(response, defaultPageLimit = CONFIG.MAX_PAGE_LIMIT) {
const data = response.data;
const pageLimit = response.pageLimit || defaultPageLimit;
while(response.data.length === pageLimit){
response = yield response.fetchPage(_jac.JsonApiLinkFields.next);
const newResponseData = response.data;
data.push(...newResponseData);
}
return data;
});
return function loadAllPagesData(response) {
return _ref.apply(this, arguments);
};
}();
//# sourceMappingURL=api.js.map