import { computed, unref, useNitroOrigin, useRuntimeConfig, useSiteConfig } from "#imports"; import { fixSlashes, resolveSitePath } from "site-config-stack/urls"; export function createSitePathResolver(options = {}) { const siteConfig = useSiteConfig(); const nitroOrigin = useNitroOrigin(); const nuxtBase = useRuntimeConfig().app.baseURL || "/"; return (path) => { return computed(() => resolveSitePath(unref(path), { absolute: unref(options.absolute), withBase: unref(options.withBase), siteUrl: unref(options.canonical) !== false || import.meta.prerender ? siteConfig.url : nitroOrigin, trailingSlash: siteConfig.trailingSlash, base: nuxtBase })); }; } export function withSiteTrailingSlash(path) { const siteConfig = useSiteConfig(); return computed(() => fixSlashes(siteConfig.trailingSlash, unref(path))); } export function withSiteUrl(path, options = {}) { const siteConfig = useSiteConfig(); const nitroOrigin = useNitroOrigin(); const base = useRuntimeConfig().app.baseURL || "/"; return computed(() => { return resolveSitePath(unref(path), { absolute: true, siteUrl: unref(options.canonical) !== false || import.meta.prerender ? siteConfig.url : nitroOrigin, trailingSlash: siteConfig.trailingSlash, base, withBase: unref(options.withBase) }); }); }