Module:UtilsVar

local p = {}

VariablesLua = mw.ext.VariablesLua

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

function p.get(name) 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) local array = p.get(name) or {} table.insert(array, val) p.set(name, array) return array end

function p.counter(name, limit) 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