<script lang="ts" setup>
interface Props {
  href?: string;
  blank?: boolean;
}

withDefaults(defineProps<Props>(), {
  href: "",
  blank: false,
});

const isInternalLink = (link: string) => !link.match(/^\w+\:\/\//);

const transformInternalLinks = (href: string) => {
  if (!isInternalLink(href)) {
    return href;
  }

  return href
    .toLowerCase()
    .replaceAll("%20", " ")
    .replace(/\d+/g, "")
    .trim()
    .replaceAll(" ", "-");
};
</script>

<template>
  <NuxtLink
    :href="transformInternalLinks(href)"
    :target="isInternalLink(href) ? '' : '_blank'"
  >
    <slot
  /></NuxtLink>
</template>