Jump to content

Module:Deprecated

Wikipedia irraa
Keessa deebiin kun gaafa 23:47, 15 Caamsaa 2025 2601:18e:d104:4ab0:5955:a305:f9b5:3751 (dubbadhu) irratti (Fuula Harra: --- Marks items as deprecated, and provides a warning when they are called. -- @release alpha -- @author Awesome Aasim -- @function deprecated -- @param {table} p package frame -- @param deprecatedTable -- @return package return function(p, deprecatedTable, replacement) local pckg = {} --- Warn -- @param {string} text warning text function warn(text) local tb = debug.traceback() mw.log(text .. '\n' .. tb) mw.addWarning(text .. tb:gsub("\n", "<...)
(gargar) ← Foyyeeffata duraani | Foyyeeffata reefuu (gargar) | Foyyeeffata daran haaraa → (gargar)

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

--- Marks items as deprecated, and provides a warning when they are called.
-- @release alpha
-- @author [[User:Awesome_Aasim|Awesome Aasim]]
-- @function deprecated
-- @param {table} p package frame
-- @param deprecatedTable 
-- @return package

return function(p, deprecatedTable, replacement)
	local pckg = {}
	--- Warn
	-- @param {string} text warning text
	function warn(text)
		local tb = debug.traceback()
		mw.log(text .. '\n' .. tb)
		mw.addWarning(text .. tb:gsub("\n", "<br/>"):gsub("\t", "&emsp;"))
	end
	if deprecatedTable == nil or deprecatedTable == true then
		deprecatedTable = {}
		for k,_ in pairs(p) do
			deprecatedTable[k] = {
				deprecated = true,
				replacement = replacement or ""
			}
		end
	end
	setmetatable(pckg, {
		__index = function(t, index)
			if deprecatedTable[index] and deprecatedTable[index]["deprecated"] then
				warn(
					mw.ustring.format(
						"Deprecated member <code>%s</code> called. ", index
					) .. (
						deprecatedTable[index]["replacement"]
						and mw.ustring.format("Please %s instead.", deprecatedTable[index]["replacement"])
						or ''
					)
				)
			end
			return p[index]
		end
	})
	return pckg
end