"use strict"; // This creates a version of `require()` in the context of the current // directory, so we iterate over its content, which is a map statically built by // Webpack. // Second argument says it's recursive, third makes sure we only load templates. const requireViews = require.context(".", true, /\.tpl$/); module.exports = requireViews.keys().reduce((acc, path) => { // We are going to create nested properties on the accumulator object. let tmp = acc; // Split path by folders, and create a new property if necessary/ // First 2 characters are "./"/ // Last element in the array ends with `.tpl` and needs to be `require`d. path.substr(2) .split("/") .forEach((key) => { if (key.endsWith(".tpl")) { // tmp[key.substr(0, key.length - 4)] = requireViews(path); } else { tmp[key] = tmp[key] || {}; } tmp = tmp[key]; }); return acc; }, {});