This wiki has been closed because there have been no edits or logs made within the last 60 days. This wiki is now eligible for being adopted. To adopt this wiki please go to Requests for adoption and make a request. If this wiki is not adopted within 6 months it may be deleted. Note: If you are a bureaucrat on this wiki you can go to Special:ManageWiki and uncheck the "closed" box to reopen it.


From ModelUSGov Wiki
Jump to navigation Jump to search

Documentation for this module may be created at Module:Protect/doc

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)
		return string.format(options.errFormat, message)
	return ...

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

return protect