"use strict"; var extractTriggers = function (mod, triggers, prefix) { prefix = prefix || ""; for (var funcName of Object.keys(mod)) { var child = mod[funcName]; if (typeof child === "function" && child.__trigger && typeof child.__trigger === "object") { if (funcName.indexOf("-") >= 0) { throw new Error('Function name "' + funcName + '" is invalid. Function names cannot contain dashes.'); } var trigger = {}; for (var key of Object.keys(child.__trigger)) { trigger[key] = child.__trigger[key]; } trigger.name = prefix + funcName; trigger.entryPoint = trigger.name.replace(/-/g, "."); triggers.push(trigger); } else if (typeof child === "object" && child !== null) { extractTriggers(child, triggers, prefix + funcName + "-"); } } }; module.exports = extractTriggers;