scryfall-client
Version:
A module for making requests to scryfall
39 lines (38 loc) • 1.04 kB
JavaScript
var SCRYFALL_API_ENDPOINT = "https://api.scryfall.com/";
function stringifyParams(params) {
return Object.keys(params).reduce(function (accum, param) {
if (accum) {
accum += "&";
}
return (accum += "".concat(param, "=").concat(params[param]));
}, "");
}
function isFullScryfallUrl(url) {
return url.indexOf(SCRYFALL_API_ENDPOINT) === 0;
}
function endpointBeginsWithSlash(endpoint) {
return endpoint.indexOf("/") === 0;
}
function getBaseUrl(endpoint) {
if (isFullScryfallUrl(endpoint)) {
return endpoint;
}
if (endpointBeginsWithSlash(endpoint)) {
endpoint = endpoint.substring(1);
}
return SCRYFALL_API_ENDPOINT + endpoint;
}
export default function getUrl(endpoint, query) {
var url = getBaseUrl(endpoint);
if (query) {
var queryParams = stringifyParams(query);
if (url.indexOf("?") > -1) {
url += "&";
}
else {
url += "?";
}
url += queryParams;
}
return url;
}