nuxt-simple-sitemap
Version:
Powerfully flexible XML Sitemaps that integrate seamlessly, for Nuxt.
30 lines (29 loc) • 941 B
JavaScript
import { defineEventHandler } from "h3";
import {
childSitemapSources,
globalSitemapSources,
resolveSitemapSources
} from "../../sitemap/urlset/sources.mjs";
import { useSimpleSitemapRuntimeConfig } from "../../utils.mjs";
import { useNitroOrigin } from "#imports";
export default defineEventHandler(async (e) => {
const _runtimeConfig = useSimpleSitemapRuntimeConfig();
const { sitemaps: _sitemaps } = _runtimeConfig;
const runtimeConfig = { ..._runtimeConfig };
delete runtimeConfig.sitemaps;
const globalSources = await globalSitemapSources();
const nitroOrigin = useNitroOrigin(e);
const sitemaps = {};
for (const s of Object.keys(_sitemaps)) {
sitemaps[s] = {
..._sitemaps[s],
sources: await resolveSitemapSources(await childSitemapSources(_sitemaps[s]))
};
}
return {
nitroOrigin,
sitemaps,
runtimeConfig,
globalSources: await resolveSitemapSources(globalSources)
};
});