[create]
The documentation for this module is missing. Click here to create it.
-- Original at https://hypixel-skyblock.fandom.com/wiki/Module:MultiRequire
local checkType = require("libraryUtil").checkType
local checkTypeMulti = require("libraryUtil").checkTypeMulti
local function formatError(e, module)
if type(e) ~= "string" then return nil end
if e:match("not found") then
return ("Module %q was not found"):format(module)
elseif e:match("loop") then
return ("Loop or previous error loading module %q"):format(module)
elseif e:match("^Module:") then
return ("Exception in loading module %q at line %s: %s"):format(module, e:match("^Module:%w+:(%d+)"), e:gsub("^Module:%w+:%d+:%s*", ""))
end
end
local t = {multiRequire = error}
local function multiRequire(...)
local modules = {...}
local tp = type(modules[1])
local ret = {}
if tp == "string" then
for i = 1, select("#", ...), 1 do
local module = modules[i]
checkType("multiRequire", 1, module, "string")
local success, res = pcall(require, module)
if not success then
t.multiRequire(formatError(res, module), 2)
end
table.insert(ret, res)
end
else
checkTypeMulti("multiRequire", 1, modules[1], {"table", "string"})
for _, module in ipairs(modules[1]) do
local success, res = pcall(require, module)
if not success then
t.multiRequire(formatError(res, module), 2)
end
table.insert(ret, res)
end
end
if tp == "string" then
return unpack(ret)
else
return ret
end
end
return multiRequire