| 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 | |
| }; | |