Jump to content

Module:Protect: Difference between revisions

Remove location information from error message
(Tweak errFormat behavior)
(Remove location information from error message)
Line 1: Line 1:
local function processResult(errFormat, success, ...)
local function processResult(options, success, ...)
if not success then
if not success then
return string.format(errFormat, tostring(... or '(no message)'))
local message = tostring(... or '(no message)')
if options.removeLocation then
message = string.gsub(message, '^Module:[^:]+:%d+: ', '', 1)
end
return string.format(options.errFormat, message)
end
end
return ...
return ...
end
end


local function protect(func, errFormat, raw)
local function protect(func, errFormat, options)
errFormat = errFormat or 'Error: %s'
if type(errFormat) == 'table' then
if not raw then
options = options or errFormat
errFormat = '<strong class="error">' .. errFormat .. '</strong>'
errFormat = nil
end
end
options = mw.clone(options) or {}
options.errFormat = errFormat or options.errFormat or 'Error: %s'
if not options.raw then
options.errFormat = '<strong class="error">' .. options.errFormat .. '</strong>'
end
options.removeLocation = options.removeLocation == nil or options.removeLocation
return function (...)
return function (...)
return processResult(errFormat, pcall(func, ...))
return processResult(options, pcall(func, ...))
end
end
end
end


return protect
return protect
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.