UNPKG

nuxt-site-config

Version:

Shared site configuration for Nuxt 3 modules.

35 lines (34 loc) 1.28 kB
import { useRuntimeConfig } from "nitropack/runtime"; import { fixSlashes, resolveSitePath } from "site-config-stack/urls"; import { useNitroOrigin } from "./useNitroOrigin.js"; import { useSiteConfig } from "./useSiteConfig.js"; export function createSitePathResolver(e, options = {}) { const siteConfig = useSiteConfig(e); const nitroOrigin = useNitroOrigin(e); const nuxtBase = useRuntimeConfig(e).app.baseURL || "/"; return (path) => { return resolveSitePath(path, { ...options, siteUrl: options.canonical !== false || import.meta.prerender ? siteConfig.url : nitroOrigin, trailingSlash: siteConfig.trailingSlash, base: nuxtBase }); }; } export function withSiteTrailingSlash(e, path) { const siteConfig = e.context.siteConfig?.get(); return fixSlashes(siteConfig.trailingSlash, path); } export function withSiteUrl(e, path, options = {}) { const siteConfig = e.context.siteConfig?.get(); let siteUrl = e.context.siteConfigNitroOrigin; if ((options.canonical !== false || import.meta.prerender) && siteConfig.url) siteUrl = siteConfig.url; return resolveSitePath(path, { absolute: true, siteUrl, trailingSlash: siteConfig.trailingSlash, base: e.context.nitro.baseURL, withBase: options.withBase }); }