Module:Utils

local utils = {}

function utils.defaultIfEmpty( val, default ) if val == nil or val == '' then return default else return val end end

function utils.loadDataIfExists( name ) local success, data = pcall( mw.loadData, name ) if success then return data else return nil end end

function utils.error( ... ) -- Collect necessary information to display error local message = tostring( utils.defaultIfEmpty( select( 1, ... ), 'There was an error with a template. Are the parameters all correct?' ) ) local etype = tostring( utils.defaultIfEmpty( select( 2, ... ), 'Template' ) ) local category = tostring( utils.defaultIfEmpty( select( 3, ... ), 'Pages containing template errors' ) ) local template = utils.defaultIfEmpty( select( 4, ... ), nil ) -- Style data etype = string.upper( etype ) -- Add a warning to the edit preview if template == nil then mw.addWarning( "" .. etype .. " ERROR: " .. message ) else mw.addWarning( "" .. etype .. " ERROR: " .. message .. ' (Template name: "' .. tostring( template ) .. '")' ) end -- Create and return the text to display on the page itself return ''' .. etype .. ERROR:''' .. message .. ' [[Category:'		.. category		.. ']]' end

return utils