@quasibit/eleventy-plugin-sitemap
Version:
Eleventy plugin to generate a sitemap.
30 lines (22 loc) • 722 B
JavaScript
;
const { SitemapStream, streamToPromise } = require("sitemap");
const sitemapItems = require("./sitemapItems");
/**
* Builds an XML sitemap.
*
* @async
* @param {Array} items Array with items built using function `sitemapItem`.
* @param {object|undefined} options Optional plugin user options.
* @returns {Promise<string>} XML sitemap.
*/
module.exports = async function sitemap(items, options) {
const streamOptions = options && options.sitemap;
const stream = new SitemapStream(streamOptions);
const links = sitemapItems(items, options);
for (const link of links) {
stream.write(link);
}
stream.end();
const data = await streamToPromise(stream);
return data.toString();
};