PhantomCaleb (talk | contribs) mNo edit summary |
PhantomCaleb (talk | contribs) mNo edit summary |
||
Line 9: | Line 9: | ||
local submodule = require(submodulePage) |
local submodule = require(submodulePage) |
||
for exportKey, export in pairs(submodule) do |
for exportKey, export in pairs(submodule) do |
||
− | if |
+ | if exportKey == "Schema" then |
+ | module.Schema = utilsTable.merge({}, module.Schema, submodule.Schema) |
||
+ | elseif module[exportKey] and exportKey ~= "Documentation" then |
||
mw.addWarning(string.format("Module conflict: <code>%s</code> is exported by more than one submodule.", exportKey)) |
mw.addWarning(string.format("Module conflict: <code>%s</code> is exported by more than one submodule.", exportKey)) |
||
end |
end |
Revision as of 18:43, 25 April 2020
Documentation for this module may be created at Module:UtilsPackage/Documentation
local p = {}
local utilsTable = require("Module:UtilsTable")
function p.submodules(submodules)
local module = {}
local moduleDoc = {}
for submoduleKey, submodulePage in pairs(submodules) do
local submodule = require(submodulePage)
for exportKey, export in pairs(submodule) do
if exportKey == "Schema" then
module.Schema = utilsTable.merge({}, module.Schema, submodule.Schema)
elseif module[exportKey] and exportKey ~= "Documentation" then
mw.addWarning(string.format("Module conflict: <code>%s</code> is exported by more than one submodule.", exportKey))
end
module[exportKey] = export
end
moduleDoc[submoduleKey] = submodulePage
end
module.Documentation = moduleDoc
return module
end
return p