compileSubmodules.lua 752 B

1234567891011121314151617181920212223242526
  1. local errors = {
  2. IllegalArgument = "Argument 1 must be an instance, got %s",
  3. }
  4. return function(root, recurseThroughFolders)
  5. assert(root, errors.IllegalArgument:format(typeof(root)))
  6. assert(typeof(root) == "Instance", errors.IllegalArgument:format(typeof(root)))
  7. local modules = {}
  8. local function compileSubmodules(instance)
  9. for _, child in pairs(instance:GetChildren()) do
  10. if child:IsA("ModuleScript") then
  11. local requiredModule = require(child)
  12. modules[child] = requiredModule
  13. elseif child:IsA("Folder") and recurseThroughFolders then
  14. compileSubmodules(child)
  15. end
  16. end
  17. end
  18. compileSubmodules(root)
  19. return modules
  20. end