Ir para o conteúdo

Módulo:Protect: mudanças entre as edições

De DropWiki PoE 2
Criou página com 'local function processResult(options, success, ...) if not success then 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 return ... end local function protect(func, errFormat, options) if type(errFormat) == 'table' then options = options or errFormat errFormat = nil end options = mw.clone(options) or {}...'
 
Sem resumo de edição
 
Linha 1: Linha 1:
_pageName='{{#replace:{{PAGENAME}}|'|\'}}'
local function processResult(options, success, ...)
local function processResult(options, success, ...)
if not success then
if not success then

Edição atual tal como às 00h42min de 7 de fevereiro de 2025


This módulo was adapted from Módulo:Protect on Wikipedia.
Adaptation is noted for reference and attribution only. This módulo may differ from the original in function or in usage.

This metamodule simplifies error handling in other modules. It transforms a function, which may throw an error, into a function, which returns a specified error message in that case.


Usage

{{#invoke:Protect|function_name}}



_pageName='{{#replace:{{PAGENAME}}|'|\'}}'

local function processResult(options, success, ...)
	if not success then
		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
	return ...
end

local function protect(func, errFormat, options)
	if type(errFormat) == 'table' then
		options = options or errFormat
		errFormat = nil
	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 processResult(options, pcall(func, ...))
	end
end

return protect