Files
Questie-X/Modules/Libs/QuestieLoader.lua
T

40 lines
943 B
Lua

-- The only public class except for Questie
---@class QuestieLoader
QuestieLoader = {}
local modules = {}
QuestieLoader._modules = modules -- store reference so modules can be iterated for profiling
---@generic T
---@param name `T` @Module name
---@return T|{ private: table } @Module reference
function QuestieLoader:CreateModule(name)
if (not modules[name]) then
modules[name] = { private = {} }
return modules[name]
else
return modules[name]
end
end
---@generic T
---@param name `T` @Module name
---@return T|{ private: table } @Module reference
function QuestieLoader:ImportModule(name)
if (not modules[name]) then
modules[name] = { private = {} }
return modules[name]
else
return modules[name]
end
end
function QuestieLoader:PopulateGlobals() -- called when debugging is enabled
for name, module in pairs(modules) do
_G[name] = module
end
end