{"version":3,"file":"ApiClient.cjs","names":[],"sources":["../src/ApiClient.ts"],"sourcesContent":["export class ApiClient {\n  baseUrl: string\n\n  headers: Headers\n\n  options: RequestInit\n\n  private static _default?: ApiClient\n\n  constructor(baseUrl = '', options: RequestInit = {}) {\n    this.baseUrl = baseUrl\n    this.options = options\n    this.headers = new Headers({\n      Accept: 'application/json',\n      'Content-Type': 'application/json',\n      ...this.options.headers,\n    })\n  }\n\n  async request(method: string, endpoint: string, data: Record<string, unknown> = {}) {\n    const response = await fetch(`${this.baseUrl}/${endpoint}`, {\n      ...this.options,\n      headers: this.headers,\n      mode: 'cors',\n      method,\n      body: ['POST', 'PUT'].includes(method) ? JSON.stringify(data) : undefined,\n    })\n\n    const json = (await response.json()) as unknown\n\n    return json\n  }\n\n  public static get default(): ApiClient {\n    // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- TODO: Remove rule disable when appropriate\n    if (!ApiClient._default) {\n      ApiClient._default = new ApiClient()\n    }\n\n    return ApiClient._default\n  }\n\n  public get default(): ApiClient {\n    // This getter method exist to gain access to the static singleton from all instances of `ApiClient`.\n    return ApiClient.default\n  }\n}\n"],"mappings":";;AAAA,IAAa,YAAb,MAAa,UAAU;CACrB;CAEA;CAEA;CAEA,OAAe;CAEf,YAAY,UAAU,IAAI,UAAuB,CAAC,GAAG;EACnD,KAAK,UAAU;EACf,KAAK,UAAU;EACf,KAAK,UAAU,IAAI,QAAQ;GACzB,QAAQ;GACR,gBAAgB;GAChB,GAAG,KAAK,QAAQ;EAClB,CAAC;CACH;CAEA,MAAM,QAAQ,QAAgB,UAAkB,OAAgC,CAAC,GAAG;EAWlF,OAAO,OAFa,MARG,MAAM,GAAG,KAAK,QAAQ,GAAG,YAAY;GAC1D,GAAG,KAAK;GACR,SAAS,KAAK;GACd,MAAM;GACN;GACA,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,MAAM,IAAI,KAAK,UAAU,IAAI,IAAI,KAAA;EAClE,CAAC,EAAA,CAE4B,KAAK;CAGpC;CAEA,WAAkB,UAAqB;EAErC,IAAI,CAAC,UAAU,UACb,UAAU,WAAW,IAAI,UAAU;EAGrC,OAAO,UAAU;CACnB;CAEA,IAAW,UAAqB;EAE9B,OAAO,UAAU;CACnB;AACF"}