blob: 0ee34b5c906916cc53683f347cf1ca5cdb977d61 [file] [log] [blame]
import fetchWrapper from "./fetch-wrapper";
function withDefaults(oldEndpoint, newDefaults) {
const endpoint = oldEndpoint.defaults(newDefaults);
const newApi = function(route, parameters) {
const endpointOptions = endpoint.merge(route, parameters);
if (!endpointOptions.request || !endpointOptions.request.hook) {
return fetchWrapper(endpoint.parse(endpointOptions));
}
const request = (route2, parameters2) => {
return fetchWrapper(
endpoint.parse(endpoint.merge(route2, parameters2))
);
};
Object.assign(request, {
endpoint,
defaults: withDefaults.bind(null, endpoint)
});
return endpointOptions.request.hook(request, endpointOptions);
};
return Object.assign(newApi, {
endpoint,
defaults: withDefaults.bind(null, endpoint)
});
}
export {
withDefaults as default
};