import axios, {type AxiosInstance} from "axios"; export abstract class Api { public baseURL: string; protected constructor(baseURL: string) { this.baseURL = baseURL; } build() { const instance: AxiosInstance = axios.create({ baseURL: this.baseURL }); instance.interceptors.request.use((config) => { config.withCredentials = true; return config; }) return instance; } } export class AuthApi extends Api { constructor() { super("http://localhost:8089/api/iam-backend"); } static create() { return new AuthApi().build(); } } export class MavenApi extends Api { constructor() { super("http://localhost:8080"); } static create() { return new MavenApi().build(); } }