Module:UtilsVar

local p = {}

VariablesLua = mw.ext.VariablesLua

function p.set(name, val) -- Future-proofing in case the extension is no longer available if not VariablesLua then return nil end

local json = mw.text.jsonEncode(val) VariablesLua.vardefine(name, json) end

function p.get(name) if not VariablesLua then return nil end

local json = VariablesLua.var(name) if json == "" then return nil end local val = mw.text.jsonDecode(json) return val end

function p.add(name, val) if not VariablesLua then return nil end

local array = p.get(name) or {} table.insert(array, val) p.set(name, array) return array end

function p.counter(name, limit) if not VariablesLua then return { increment = function return 0 end, value = function return 0 end, }	end

name = name or "" return { increment = function local val = p.get(name) or 0 val = val + 1 p.set(name, val) return val end, value = function return p.get(name) or 0 end, limit = limit } end

return p