const sitemap = require('sitemap') const axios = require('axios') const fs = require('fs').promises const homeUrl = 'https://art.shlisselburg.org' const sitemapCacheTime = 600000 const api = axios.create({ baseURL: 'https://api.tmshv.com/hudozka', }) async function getMenuUrls(frequency = 'daily') { const menu = [ '/', '/collective', ] return menu // .filter(i => 'url' in i) .map(url => ({ url, changefreq: frequency })) } async function getPageUrls(frequency = 'daily') { const res = await api.get('/api/pages/urls') return res.data.items.map(url => ({ changefreq: frequency, url, })) } (async () => { let urls = await Promise.all([ getMenuUrls(), getPageUrls(), ]) urls = urls.reduce((urls, i) => urls.concat(i)) let map = sitemap.createSitemap({ hostname: homeUrl, cacheTime: sitemapCacheTime, urls }) const content = map.toString() await fs.writeFile('dist/sitemap.xml', content, { encoding: 'utf-8' }) })()