declare const wpfdDivi5Options: {
  ajaxurl?: string;
} | undefined;

export const getAjaxUrl = (): string => {
  if (typeof wpfdDivi5Options !== 'undefined' && wpfdDivi5Options?.ajaxurl) {
    return wpfdDivi5Options.ajaxurl;
  }

  return '';
};

export const requestJson = async (params: Record<string, string>, signal?: AbortSignal): Promise<any> => {
  const url = new URL(getAjaxUrl());

  Object.entries(params).forEach(([key, value]) => {
    url.searchParams.set(key, value);
  });

  const response = await fetch(url.toString(), { signal });
  return response.json();
};
