@herlinus/coloquent
Version:
Library for retrieving model objects from a JSON-API, with a fluent syntax inspired by Laravel Eloquent.
40 lines • 1.68 kB
JavaScript
import axios from 'axios';
import { AxiosHttpClientPromise } from "./AxiosHttpClientPromise";
export class AxiosHttpClient {
constructor(axiosInstance) {
if (axiosInstance === null || axiosInstance === undefined) {
axiosInstance = axios.create();
axiosInstance.defaults.headers['Accept'] = 'application/vnd.api+json';
axiosInstance.defaults.headers['Content-type'] = 'application/vnd.api+json';
}
this.axiosInstance = axiosInstance;
}
setBaseUrl(baseUrl) {
this.axiosInstance.defaults.baseURL = baseUrl;
}
setWithCredentials(withCredientials) {
this.axiosInstance.defaults.withCredentials = withCredientials;
}
get(url, config) {
return new AxiosHttpClientPromise(this.axiosInstance.get(url, Object.assign({}, config)));
}
delete(url, config) {
return new AxiosHttpClientPromise(this.axiosInstance.delete(url, Object.assign({}, config)));
}
head(url, config) {
return new AxiosHttpClientPromise(this.axiosInstance.head(url, Object.assign({}, config)));
}
post(url, data, config) {
return new AxiosHttpClientPromise(this.axiosInstance.post(url, data, Object.assign({}, config)));
}
put(url, data, config) {
return new AxiosHttpClientPromise(this.axiosInstance.put(url, data, Object.assign({}, config)));
}
patch(url, data, config) {
return new AxiosHttpClientPromise(this.axiosInstance.patch(url, data, Object.assign({}, config)));
}
getImplementingClient() {
return this.axiosInstance;
}
}
//# sourceMappingURL=AxiosHttpClient.js.map