Skip to main content
Maizzle is fully configured in JavaScript, so you can programmatically set config options or process and make data available to your Templates.

Defining functions

When defining a function, you need to make sure that:
1

It returns something

Functions must return a value to be used in templates.
2

You invoke it

Make sure to call the function with () when assigning it to a config key.
config.js
import imaginaryLib from 'imaginary-lib'

const foo = function() {
  return 'manchu'
}

export default {
  foo: foo(), // invoke function defined above
  bar: function() {
    // do stuff and return
    return 'baz'
  }(), // invoke function
  wha: () => imaginaryLib.render('implicit return 👌')
}
You would access those variables under the page object:
emails/example.html
<x-main>
  {{ page.foo }}
  {{ page.bar }}
  {{ page.wha }}
</x-main>
Result:
build_production/example.html
manchu baz implicit return 👌

Build docs developers (and LLMs) love