UNPKG

retrofit-axios-ts

Version:

A declarative and axios based retrofit implementation for JavaScript and TypeScript.

58 lines (57 loc) 2.46 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.HttpClient = void 0; const axios_1 = __importDefault(require("axios")); axios_1.default.defaults.withCredentials = true; class HttpClient { constructor(builder) { this.axios = axios_1.default; this.standalone = false; if (builder.standalone === true) { this.axios = axios_1.default.create(); this.standalone = true; } else if (typeof builder.standalone === "function") { this.axios = builder.standalone; } builder.requestInterceptors.forEach((interceptor) => { this.axios.interceptors.request.use(interceptor.fulfilled, interceptor.rejected); }); builder.responseInterceptors.forEach((interceptor) => { this.axios.interceptors.response.use(interceptor.fulfilled, interceptor.rejected); }); } isStandalone() { return this.standalone; } sendRequest(config) { return __awaiter(this, void 0, void 0, function* () { return yield this.axios(config); }); } useRequestInterceptor(interceptor) { return this.axios.interceptors.request.use(interceptor); } useResponseInterceptor(interceptor) { return this.axios.interceptors.response.use(interceptor); } ejectRequestInterceptor(id) { this.axios.interceptors.request.eject(id); } ejectResponseInterceptor(id) { this.axios.interceptors.response.eject(id); } } exports.HttpClient = HttpClient;