Estoy tratando de crear un mapa del sitio con una API remota en nuxt, pero parece una promesa. Todo no espera la respuesta de la API y devuelve un objeto nulo como resultado. Estoy usando el módulo de mapa del sitio nuxtjs para ese trabajo. Estructura que creo a continuación:
import axios from 'axios' import range from 'lodash/range' export default { sitemap: { /** * ... */ sitemaps: [ /** * {...}, * {...}, */ { path: '/mg_chapters.xml', /** * ... */ sitemaps: async() => { const base = "https://example.com", a2 = "/api/sitemap/chapters?page="; const fetcher = (index) => axios .get(a2 + index) .then((res) => res.data.data) .then((els) => els.map((el) => ({ url: `${base}/cizgi-romanlar/${el}`, /** * ... */ })) ); const sitemaps = async() => { const len = await axios.get(a2 + 1).then(res => res.data.last_page) return await Promise.all( range(len).map(async(index) => ({ path: `/mg_chapters-${index + 1}.xml`, routes: await fetcher(index + 1), /** * ... */ })) ); } return await sitemaps() } } ] }, }Lo extraño es que cuando pruebo este bloque de código en async fetch () en un archivo vue aleatorio, funciona correctamente y devuelve el resultado esperado. Debido al mapa del sitio en el archivo nuxt.config, no puedo ver ningún registro de error, o lo que regresa o no. Básicamente estoy trabajando en este trabajo a ciegas y revisando la página xml. Si le interesa cómo se ve el resultado esperado:
[ { "path": "/mg_chapters-1.xml", "routes": [ { "url": "https://example.com/cizgi-romanlar/bolum-8", "changefreq": "daily", "lastmod": "2021-11-24T14:03:55.477Z" } ], "cacheTime": 86400000, "trailingSlash": true, "exclude": [ "/**" ] } ]Entonces, en nuxt.config, mi bloque de código regresa vacío y no espera respuesta. Por lo que verifico, esto no es una limitación del módulo del mapa del sitio.