mirror of
https://code.forgejo.org/actions/setup-node.git
synced 2024-12-27 21:15:48 +00:00
22 lines
891 B
JavaScript
22 lines
891 B
JavaScript
import fetchWrapper from "./fetch-wrapper";
|
|
export default 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 = (route, parameters) => {
|
|
return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));
|
|
};
|
|
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)
|
|
});
|
|
}
|