<% assert(func, "Requires function to render a function signature") %> <% assert(funcname, "Requires a function name to render a function signature") %> <%- funcname %>( <% if func.params and #func.params > 0 then %> <% local optchain = false %> <% for paramid, param in pairs(func.params) do %> <% if paramid == 1 and param.optional then %> [ <% elseif param.optional then %> [, <% elseif paramid > 1 then %> , <% end %> <%- param.name %> <% if paramid == 1 and param.optional then %> ] <% elseif param.optional then %> ] <% end %> <% end %> <% end %> )