import fetchLinkData from "./functions/fetchData";
import getHash from "./functions/getHash";
import LinkPreviewCard from "./LinkPreviewCard";

var CSS_URL =
  "https://cdn.jsdelivr.net/npm/link-preview-card@1.0.1/dist/style/styles.css";

// var CSS_URL = "../dist/style/styles.css";

(async () => {
  // @ts-ignore
  var aTags: HTMLAnchorElement[] = document.querySelectorAll(
    "a[link-preview-card]"
  );
  // if any then import css
  if (aTags.length > 0) {
    importStyles();
  }

  var linkData = await fetchLinkData([
    ...new Set([...aTags].map((aTag) => aTag.href)),
  ]);
  for (var i = 0; i < linkData.length; i++) {
    var data = linkData[i];
    LinkPreviewCard.store[getHash(data.url)] = data;
  }
  aTags.forEach((aTag) => {
    new LinkPreviewCard(aTag);
  });
})();

function importStyles(): void {
  var link = document.createElement("link");
  link.href = CSS_URL;
  link.type = "text/css";
  link.rel = "stylesheet";
  document.getElementsByTagName("head")[0].appendChild(link);
}
