nuxt-simple-sitemap
Version:
Powerfully flexible XML Sitemaps that integrate seamlessly, for Nuxt.
24 lines (23 loc) • 878 B
JavaScript
import { useRuntimeConfig } from "#imports";
export * from "./utils-pure.mjs";
const StringifiedRegExpPattern = /\/(.*?)\/([gimsuy]*)$/;
export function normalizeRuntimeFilters(input) {
return (input || []).map((rule) => {
if (rule instanceof RegExp || typeof rule === "string")
return rule;
const match = rule.regex.match(StringifiedRegExpPattern);
if (match)
return new RegExp(match[1], match[2]);
return false;
}).filter(Boolean);
}
export function useSimpleSitemapRuntimeConfig() {
const clone = JSON.parse(JSON.stringify(useRuntimeConfig()["nuxt-simple-sitemap"]));
for (const k in clone.sitemaps) {
const sitemap = clone.sitemaps[k];
sitemap.include = normalizeRuntimeFilters(sitemap.include);
sitemap.exclude = normalizeRuntimeFilters(sitemap.exclude);
clone.sitemaps[k] = sitemap;
}
return Object.freeze(clone);
}