import { resolveArray } from "../../../../lib/metadata/generate/utils"; // convert robots data to txt string export function resolveRobots(data) { let content = ""; const rules = Array.isArray(data.rules) ? data.rules : [ data.rules ]; for (const rule of rules){ const userAgent = resolveArray(rule.userAgent || [ "*" ]); for (const agent of userAgent){ content += `User-Agent: ${agent}\n`; } if (rule.allow) { const allow = resolveArray(rule.allow); for (const item of allow){ content += `Allow: ${item}\n`; } } if (rule.disallow) { const disallow = resolveArray(rule.disallow); for (const item of disallow){ content += `Disallow: ${item}\n`; } } if (rule.crawlDelay) { content += `Crawl-delay: ${rule.crawlDelay}\n`; } content += "\n"; } if (data.host) { content += `Host: ${data.host}\n`; } if (data.sitemap) { const sitemap = resolveArray(data.sitemap); // TODO-METADATA: support injecting sitemap url into robots.txt sitemap.forEach((item)=>{ content += `Sitemap: ${item}\n`; }); } return content; } // TODO-METADATA: support multi sitemap files // convert sitemap data to xml string export function resolveSitemap(data) { let content = ""; content += '\n'; content += '\n'; for (const item of data){ content += "\n"; content += `${item.url}\n`; if (item.lastModified) { const serializedDate = item.lastModified instanceof Date ? item.lastModified.toISOString() : item.lastModified; content += `${serializedDate}\n`; } if (item.changeFrequency) { content += `${item.changeFrequency}\n`; } if (typeof item.priority === "number") { content += `${item.priority}\n`; } content += "\n"; } content += "\n"; return content; } export function resolveManifest(data) { return JSON.stringify(data); } export function resolveRouteData(data, fileType) { if (fileType === "robots") { return resolveRobots(data); } if (fileType === "sitemap") { return resolveSitemap(data); } if (fileType === "manifest") { return resolveManifest(data); } return ""; } //# sourceMappingURL=resolve-route-data.js.map