import nunjucks from 'nunjucks'; export default ({types: t}) => { return { pre(state) { const options = state.opts.plugins[0].options; this.njkenv = new nunjucks.Environment(new nunjucks.FileSystemLoader(options.templatesFolder)); if (options.globals) { options.globals.forEach(({name, value}) => { this.njkenv.addGlobal(name, value); }); } }, visitor: { TaggedTemplateExpression(path) { if (path.get('tag').isIdentifier({name: 'njk'})) { const render = this.njkenv.renderString(path.node.quasi.quasis[0].value.raw); path.replaceWith(t.stringLiteral(render)); } }, }, }; };