const assert = require("assert"); const inspect = require("util").inspect; module.exports= (eleventyConfig) => { // ever so slightly modified from @pdehaan’s original: // https://github.com/11ty/eleventy/issues/278#issuecomment-873367464 const slugFn = eleventyConfig.getFilter("slug"); const slugifyFn = eleventyConfig.getFilter("slugify"); const slugErrors = new Set(); eleventyConfig.addFilter("slug", function (str="") { const slugValue = slugFn(str); try { assert.strictEqual(slugValue, slugifyFn(str)); } catch (err) { // Only display a unique error once. if (!slugErrors.has(err.message)) { console.error(`\nslug-vs-slugify filter mismatch for ${inspect(str)}\n${err.message}`); slugErrors.add(err.message); process.exitCode = 2; } } finally { return slugValue; } }); };