import productSearchApi from '@/lib/product/api/productSearchApi' import { create } from 'xmlbuilder' import _ from 'lodash-contrib' export async function getServerSideProps({ res }) { const baseUrl = process.env.SELF_HOST + '/sitemap/products' const limit = 2500 const query = { limit } const products = await productSearchApi({ query: _.toQuery(query) }) const pageCount = Math.ceil(products.response.numFound / limit) const pages = Array.from({ length: pageCount }, (_, i) => i + 1) const sitemapIndex = create('sitemapindex', { encoding: 'UTF-8' }).att( 'xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9' ) const date = new Date() pages.forEach((page) => { const sitemap = sitemapIndex.ele('sitemap') sitemap.ele('loc', `${baseUrl}/${page}.xml`) sitemap.ele('lastmod', date.toISOString().slice(0, 10)) }) res.setHeader('Content-Type', 'text/xml') res.write(sitemapIndex.end()) res.end() return { props: {} } } export default function SitemapProducts() { return null }