2025-09-05 14:59:21 +08:00

47 lines
1.6 KiB
JavaScript

'use strict';
const kit = require('@nuxt/kit');
const urls = require('site-config-stack/urls');
const stdEnv = require('std-env');
const util = require('./shared/nuxt-site-config-kit.a48e9dc3.cjs');
require('pkg-types');
require('site-config-stack');
require('ufo');
function withSiteTrailingSlash(path) {
const siteConfig = util.useSiteConfig();
return urls.fixSlashes(siteConfig.trailingSlash, path);
}
function createSitePathResolver(options = {}, nuxt = kit.useNuxt()) {
const siteConfig = util.useSiteConfig();
const nitroOrigin = util.useNitroOrigin();
const canUseSiteUrl = (options.canonical !== false || stdEnv.env.prerender) && siteConfig.url;
const nuxtBase = nuxt.options.app.baseURL || "/";
return (path) => {
return urls.resolveSitePath(path, {
...options,
siteUrl: canUseSiteUrl ? siteConfig.url : nitroOrigin,
trailingSlash: siteConfig.trailingSlash,
base: nuxtBase
});
};
}
function withSiteUrl(path, options = {}) {
const siteConfig = util.useSiteConfig();
if (!siteConfig.url && options.throwErrorOnMissingSiteUrl)
throw new Error("Missing url in site config. Please add `{ site: { url: <url> } }` to nuxt.config.ts.");
const nuxt = kit.useNuxt();
const base = nuxt.options.app.baseURL || nuxt.options.nitro.baseURL || "/";
return urls.resolveSitePath(path, {
absolute: true,
siteUrl: siteConfig.url || "",
trailingSlash: siteConfig.trailingSlash,
base,
withBase: options.withBase
});
}
exports.createSitePathResolver = createSitePathResolver;
exports.withSiteTrailingSlash = withSiteTrailingSlash;
exports.withSiteUrl = withSiteUrl;