import { resolve } from "path"; /* * HACK deduplicate * HACK make the data validation more elegant */ export default function insertJSX(data = {}) { const siteIndex = this.data("siteIndex"); // calls siteIndex from the processor const templateDir = resolve(process.cwd(), "templates"); return async (tree) => { if (data.before != undefined) { for (let x of [data.before].flat().reverse()) { const fn = await import(`${templateDir}/${x}.jsx`); tree.children.unshift(fn.default(data, siteIndex)); } } if (data.after != undefined) { for (let x of [data.after].flat().reverse()) { const fn = await import(`${templateDir}/${x}.jsx`); tree.children.push(fn.default(data, siteIndex)); } } }; }