firebase-tools
Version:
Command-Line Interface for Firebase
24 lines (23 loc) • 961 B
JavaScript
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;
;